rewind(stdin)清空缓冲区
如果不用rewind(stdin)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main() {
int iNum;
char cNum;
printf("input iNum:");
scanf("%d", &iNum);
printf("iNum=%d", iNum);
printf("input cNum:");
scanf("%c", &cNum);
printf("cNum=%c", cNum);
system("pause");
return 0;
输出结果:
input iNum:100
iNum=100input cNum:cNum=
请按任意键继续. . .
可以看到cNum被赋值成了回车(没有清空缓存区的缘故)
用上rewind(stdin)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main() {
int iNum;
char cNum;
printf("input iNum:");
scanf("%d", &iNum);
printf("iNum=%d\n", iNum);
printf("input cNum:");
rewind(stdin);
scanf("%c", &cNum);
printf("cNum=%c\n", cNum);
system("pause");
return 0;
}
输出结果:
input iNum:100
iNum=100
input cNum:a
cNum=a
请按任意键继续. . .