设c1、c2为字符型变量,执行语句“c1=getchar(); c2=getchar();”时,从键盘输入A↙,c1和c

设c1、c2为字符型变量,执行语句“c1=getchar(); c2=getchar();”时,从键盘输入A↙,c1和c2的值分别为?
我写的程序是
#include
int main(void)
{
char c1,c2;
c1=getchar();
c2=getchar();
printf("c1=%c,c2=%c",c1,c2);
}
理论上c2会等于n,可是实际输出却直接变换行了,什么情况
xixi312 1年前 已收到1个回答 举报

﹏叭誡 幼苗

共回答了12个问题采纳率:83.3% 举报

getchar()每次只接收1个字符,而你打入了两个字符:一个是A,另一个是n.当c1=getchar()执行后就把A从缓冲区中删除了并赋给了c1,但n还留在缓冲区里;接着是c2=getchar();,它就把n从缓冲区里删除并将其赋给c2.n是“动作”字符,不是显示字符,所以你的代码输出很正确:c1=A,c2=后跟着个不可显示的动作字符产生了动作“回车”,所以“请……”就显示在了下一行……不信你可以把c2=getchar()改成;c2=‘B’;看看“请……”是不是紧接在c1=A,c2=B后面了?

1年前

3
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.357 s. - webmaster@yulucn.com