首页 > 其他分享 >scanf() getchar()输入问题

scanf() getchar()输入问题

时间:2022-10-28 22:31:07浏览次数:54  
标签:int scanf ret 回车 printf 输入 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()输入问题_#define

通过监视可知

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

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

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

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

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

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

标签:int,scanf,ret,回车,printf,输入,getchar
From: https://blog.51cto.com/u_15842827/5805294

相关文章

  • 调整input里面的输入光标大小并兼容主流浏览器
    在项目里碰到过一个问题,input输入框用一个背景图模拟,设置height和line-height一样的高度,使里面的输入文字能够居中。在FF下出现的情况是:点击input时,输入光标其实上跟i......
  • Linux:RedHat8 设置中文输入法
    RadHat8自带中文输入法,只是默认没有使用。1.切换视图,搜索:Language快捷键:Win+Tab2.添加输入法3.切换输入法的快捷键super(Win)+空格 ......
  • C/C++清理输入缓冲区中的内容
    C/C++清理输入缓冲区中的内容1.清理输入缓冲区最后剩下的单个回车符:方法一:用getchar函数读取回车符:方法二:用scanf("%*c")读取掉回车符:方法三:用scanf("%c",&ch):2.清理输入......
  • 模拟输出和输入;analog
         255是灯的最大亮度;1.模拟输出analogWrite(pin,参数)  //通过参数的大小,控制引脚(比如说亮度)booleanpushButton1;booleanpushButton2;intLED=9;i......
  • 输入两个数n,a,
    输入两个数n,a,如果n==3,a==2;输出2+22+222的值。(不用输出式子)(****)如:n==4,a==3;输出3+33+333+3333的值......
  • 输入两个数,求两个数的最小公倍数(****)
    输入两个数,求两个数的最小公倍数(****)如:9和6的最小公倍数是18,1,先找出两个数中的最大数//9->6*92,最大数......
  • 循环判断用户输入的年份是闰年还是平年
    1、需求:判断用户输入的年份是闰年还是平年2、实现:/**〈循环判断用户输入的年份是闰年还是平年〉*@paramyear:年份choose:是否继续*@return0*goto语句可以使程......
  • C++输入
    用于从键盘获取数据:语法:  1#include<iostream>2#include<string>34usingnamespacestd;56intmain(){7//整型、浮点型、字符型8......
  • 输入线宽,就可以得到阻抗值,还能匹配叠层的神器你用过吗?
    提到阻抗其实很多人可能都不会计算,因为涉及到很多参数,如:半固化片PP厚度,铜的厚度,如果是隔层参考还要计算芯板加PP厚度,接下来就会讲解到详细的阻抗。做阻抗的目的是什么?印刷......
  • C#笔记(输入输出、格式化、注释)
    输入输出ConsoleKeyInfoc;do{c=Console.ReadKey();//读取按键}while(c.Key!=ConsoleKey.Escape);//等待输入Esc键strings=Console.ReadLine();i......