有关getchar()

img

img


为什么getchar()要放在这个输入循环的前面,输入如果不用gets用scanf是否结果一样?

不用gets用scanf,结果不一样,两个函数的接收方法不一样,gets能把输入的一行字符串一次性全部赋值给数组,scanf不行

得到字符

在每个最后不带\n的printf后面加fflush(stdout);
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。

//请今后要用
char c;
scanf("%c",&c);
//时,都改为
char s[2];
char c;
scanf("%1s",s);
c=s[0];
//自动跳过一个或多个空格或Tab字符或回车换行,读取下一个字符。