0
点赞
收藏
分享

微信扫一扫

用getchar和putchar写关于读取密码的题目

我阿霆哥 2022-12-17 阅读 66

1.getchar()作用相当于scanf;putchar作用相当于printf

2.如下代码为源代码

#include<stdio.h>
int main()
{
int ret;
char password[20]={0};
printf("请输入密码:>");
scanf("%s",password);
printf("请确认(Y/N)");
ret=getchar();//Y/N
if(ret=='Y')
{
printf("确认成功\n");
}
else
{
printf("放弃确认\n");
}
return 0;
}

3.若输入123+回车

代码运行失误

如图

用getchar和putchar写关于读取密码的题目_#include

4.原因:由于scanf和getchar()在读取的过程中会将所读内容放入缓冲区,此时输入的“123+回车”相当于“123+\n”,“123”被放入了scanf,而“\n”被放入了ret=getchar()

故跳出了if直接到了else的地方,输出“放弃确认”

4.解决办法

                 为90清空缓冲区的内容首先可以在scanf和ret=getchar()的中间多加一串代码,如直接添加getchar():

getchar();

如图:

用getchar和putchar写关于读取密码的题目_#include_02

5注:getchar()每次只能接受一串字符 遇到“回车、空格、tab”会终止前面的内容

举报

相关推荐

0 条评论