简单介绍该函数
getchar是读取字符再返回字符
但为什么返回类型是int呢?
1、getchar返回字符,其实就是返回字符的ascii码值
2、getchar读取结束或者失败的时候,会返回EOF
EOF->end of file->-1
密码确认函数
代码如下
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
char password[20] = { 0 };
printf("请输入密码:");
scanf("%s", password);
printf("请确认密码(Y/N):");
int ch = getchar();
if (ch == 'Y')
{
printf("确认成功\n");
}
else
{
printf("确认失败\n");
}
return 0;
}
但当我们输入回车时,还不让我们确认,就已经输出确认失败了。
原因是我们输入回车时,scanf函数和getchar函数都是在缓冲区拿走函数,如果缓冲区是空的,才会等待输入。
所以,我们可以在scanf之后放一个getchar,来先读走缓冲区里的\n,再让scanf函数读取我们的密码。
代码如下
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
char password[20] = { 0 };
printf("请输入密码:");
scanf("%s", password);
getchar();
printf("请确认密码(Y/N):");
int ch = getchar();
if (ch == 'Y')
{
printf("确认成功\n");
}
else
{
printf("确认失败\n");
}
return 0;
}
效果