由于scanf()会把无法储存的内容返回到下一次输入的最前面,所以当我们用它来储存单个字符时会出现很蛋疼的事情…
C语言的scanf()函数在接收输入单个字符时会把上一次输入的回车符号当做这次输入的字符,造成无法正确的输入字符数据。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main(void) {
const int Number = 122;
char count;
count = 'a';
while (count <= 'z')
{
printf("please type in %c\n", count);
scanf("%c", &count);
system("cls");
count++;
}
return 0;
}
这样写的话,无法打印出理想的结果…因为scanf()把流缓冲区里的回车给读取了.
在网上查的几种解决办法,感觉最好用的就是在%c前面加个空格.
像这样scanf(" %c", &count);
或者在两次scanf()中间加getchar();
不错