字符变量用scanf赋值前不加getchar
代码如下:
#include <stdio.h>
int main()
{
int num;
char ch;
scanf("%d",&num);
scanf("%c",&ch);
printf("num = %d",num);
printf("ch = %c",ch);
return 0;
]
运行时会发现程序直接跳过了ch的输入,这是因为当整数赋值结束时一般要输入一个回车符,也就是‘\n’,'\n'也会存入缓冲区,当ch要取值时正好缓冲区有一个字符,直接取走而跳过了外部输入的步骤,所以为了避免类似错误一般在字符格式化输入前加getchar();