getchar、putchar
getchar是从键盘上获取字符,并且它是从缓存区读取数据,putchar是把字符打印到屏幕上面。
举例:
int main()
{
int ch = 0;
while ((ch = getchar()) != EOF)
{
putchar(ch);//打印到屏幕上
}
return 0;
}
上面代码中,EOF代表文件结束标注,getchar读取失败的时候会返回EOF相当于键盘上的CTRL+Z,它返回的字符本质上是ASCII码值,getchar不仅仅是返回正常字符,返回值是-1,所以存放在整型变量当中。
下面写一个输密码的小程序:
int main()
{
int ch = 0;
char password[20] = { 0 };
printf("请输入密码>:");
scanf("%s", password);
//清理缓存区
//getchar();这种写法不可取
while ((ch = getchar()) != '\n')
{
;
}
printf("请确认密码(Y/N)>:");
ch = getchar();//这个读到回车键所以没确认
if (ch == 'Y')
{
printf("确认成功\n");
}
else
{
printf("确认失败\n");
}
return 0;
}
上面最关键的一句话就是while循环,它主要的目的就是为了清理缓存区,直接读到换行时,才停止循环。