要求:输入密码并确认密码。
代码:
#include<stdio.h>
int main()
{
int red=0;
int ch=0;
char password [20]={0};
printf("请输入密码:");
scanf("%s",&password);//缓冲区,此句话读取了输入的密码,其次我们按了一个回车键,次回车键即为\n,
//所以缓冲区还存在一个\n
printf("请确认密码:(Y/N)\n");
while((ch=getchar())!='\n')
{;}
red=getchar();//此句话读取了缓冲区的\n,所以ch=\n,所以条件语句中为假,所以会出错
//解决方法:思想:必须清除缓冲区。方法:加一个while循环。
if(red=='Y')
{
printf("确认成功\n");
}
else
{
printf("确认放弃");
}
return 0;
}
注:getchar是从键盘中获取字符,while((ch=getchar())!='\n'){;},此为清除缓冲区的内容,便于后续的条件语句的判断。
putchar是输出