0
点赞
收藏
分享

微信扫一扫

scanf() getchar()输入问题

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int main()
{int ret = 0;
int ch = 0;
char mima[20] = { 0 };
printf("请输入密码:");
scanf("%s", mima);
printf("请确认(Y/N):");
ret = getchar();
if (ret == 'Y')
{
printf("确认成功\n");
}
else
{
printf("确认失败\n");
}
return 0;
}

在输入123456后回车

结果直接结束,并未输入(Y/N)

scanf() getchar()输入问题_解决方法

通过监视可知

scanf() getchar()输入问题_#include_02

ret值是10,有ASII码可知其对应为回车(\n);被ret读取,

解决方法在ret前再加个getchar();读取回车(\n),结果如下:

scanf() getchar()输入问题_#define_03

也可以用while()循环解决,如下:

scanf() getchar()输入问题_#define_04

举报

相关推荐

0 条评论