作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/26 01:59:49
设c1、c2为字符型变量,执行语句“c1=getchar(); c2=getchar();”时,从键盘输入A↙,c1和c2的值分别为?
 我写的程序是
#include <stdio.h> 
int main(void) 

char c1,c2; 
c1=getchar(); 
c2=getchar(); 
printf("c1=%c,c2=%c",c1,c2); 
}
理论上c2会等于\n,可是实际输出却直接变换行了,什么情况
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后面了?