1. getchar函数介绍
(从标准输入【键盘】中得到一个字符)
返回值
(如果正确读取返回的是读到的字符的ASCII码值,如果读取错误或者失败返回EOF)
EOF -----end of file (文件结束标志)
例子
(不断打印字符 输入 crtl+z 结束)
输入A+回车表示A\n ,每次从缓存器中读取一个字符在读取\n后换行再次等待输入直到输入 crtl+z
2用getchar来清除缓存区的内容
场景 输入密码 然后确认密码应用Y/N判断密码是否正确
当输入123456\n(\n为回车)时,对于scanf函数读取\n之前的字符串,由于缓存器的内容还剩\n所以立马被getchar读取导致程序逻辑不对,因此需清除缓存区的内容
#include <stdio.h>
int main()
{
char password[20] = { 0 };
printf("请输入密码:>\n");
scanf("%s", password);
printf("请确认密码Y/N :>\n");
//若单独用getchar()只能清除缓存区的一个字符
//清除缓存器中多个字符
int temp = 0;
while ((temp=getchar()) != '\n')
{
;
}
int ch = getchar();
if (ch == 'Y')
{
printf("密码正确\n");
}
else
printf("密码错误\n");
return 0;
}