多个scanf接收int和char类型数据所遇到的问题

scanf是我们经常运用到的库函数,但是当我们连用scanf的时候,可能会出现一些小问题

对于初学者来说,会认为这是很正确的写法,但是但当我们运行的时候:

我们输入一个1,整个代码就执行完了,这与要输入两次的理想结果相悖。而且最终竟然还有一行空白的。

我们调试一下(F10,然后ctrl+alt+w+1打开第一个监视窗口)

当我们按f10一直到第一个scanf停下的是时候,将1输入进去

再让程序走下去

我们发现b已经有字符接收了,这说明第二个scanf将我们的回车键对应的字符接收了,导致我们只输入一次就完成了两次数据接收的操作。

那么我们要如何防止这种情况的发生呢?

那么有一个和printf有点像也是要接收数据的函数getchar(),可以接收字符并输出它的ascll码值

那我们可以用一个循环

getchar()函数会接受字符直到接收到\n停止,那么等这一操作完后就没用字符在缓冲区了。

1后面的字符都会被2getchar()接收

那么这样就可以连用scanf接收char和int类型数据了。

坐怀不乱杯魂
关注 关注
  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
scanf函数读取缓冲区数据问题
沸腾的石灰
11-22 4421
C语言scanf输入时缓冲区问题 简单解释 问题程序 #include <stdio.h> int main() { char a; while(1) { scanf("%c",&a); switch(a) { case 'A':printf("85~100\n");break; case 'B':printf("75~84\n");break;
c 语言 int argc,C语言深度学习之int main(int argc,char **argv)的理解及延申
weixin_36163101的博客
05-20 1976
C语言深度学习之int main(int argc,char **argv)的理解及延申前者为可接受 命令行参数,argc表示参数个数, argv[]是参数数组,其中第0个参数是程序本身的名称(包含路径)。argv[]是一个字符数组.argv[0]:指向程序的全路径名argv[1]:指向在DOS命令行中执行程序名后的第一个字符串。argv[2]:指向第二个字符串。简单的说:main(int arg...
使用scanf输入intchar数据
qq_45370007的博客
02-17 9890
使用scanf输入数据 scanf(“%c”,&c); //输入 100,实际只读了字符 ”1“ Printf(“%c\n”,c); //输出”1“ printf(“%d\n”,c); //输出49.字符T的ASCII值就是 49 说明:char 类型的变量,它储存的是:字符对应的ASCII码值。 Int 变量的输入 int a: seanf(“%d”,&a); //输入 10...
scanf读入整形(int), 字符(char), 字符串的区别
Hhhshhd的博客
04-22 2610
d之间也可以不加空格因为:读入的是数字(不是字符),scanf() 在读入数字时可以会忽略空格(字符) 和 换行符但是:如果scanf读入的是字符就会把空格,换行,当成一个字符。
C语言基础之scanf问题
ZH0314的博客
07-13 917
#include int main() { char a, b; printf("请输入两个字符:\n"); scnaf("%c", &a); scanf("%c", &b); printf("%c", a); printf("%c", b); return 0; } 在Linux环境下输入两个字符,结果输出只有一个字符的问题.。 主要原因是因为当你输入一个字符以后
c语言scanf 2個字符,我用C语言scanf输入2个数字是怎么只能收到一个
weixin_36403165的博客
05-17 2560
代码和输入格式有误。1、scanf("%d,%d",&a,&b);按照这个格式,输入数据的时候,应该加上逗号。比如说想输入22 33 就应该 22,33。2、也可以像这样scanf("%d %d",&a,&b);中间用空格隔开,那样就可以直接输入 22 33了。scanf 的功能用一句话来概括就是“通过键盘给程序中的变量赋值”。该函数的原型为:# include i...
使用两个scanf()函数分别输入字符时,第二个scanf()函数输入发生问题
ssssshhbh的博客
01-28 1029
使用两个scanf()函数分别输入字符时,第二个scanf()函数输入发生问题
scanf函数输入多个不同类型数据
最新发布
10-19
当你需要输入多个不同类型数据时,可以按照以下步骤操作: 1. 定义变量:首先,为每个要输入数据类型创建对应的变量。例如,如果要输入整数、浮点数和字符串,你可以定义如下的变量: ```c int integer; ...
C语言深度学习之int main(int argc,char **argv)的理解及延申
xingranzhihuo的博客
01-17 1370
C语言深度学习之int main(int argc,char **argv)的理解 前者可接受 命令行参数,argc表示参数个数, argv[]是参数数组,其中第0个参数是程序本身的名称(包含路径)。 argv[]是一个字符数组. argv[0]:指向程序的全路径名 argv[1]:指向在DOS命令行中执行程序名后的第一个字符串。 argv[2]:指向第二个字符串。 说一下main(int arg...
更详细了解printf和scanf
JOE_04的博客
10-19 3449
深入认识下scanf和printf两个函数
scanf函数(多组输入问题
qq_62260160的博客
06-26 9673
scanf函数的输出格式、scanf函数不安全性的问题scanf函数多组输入问题(在线oj试题)两个scanf函数连用问题scanf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。当我们需要使用时需要引入stdio.h头文件。scanf函数的一般调用形式如下:scanf("格式字符",输入列表的地址);如下 结果如下: 第一行与第四行是...
C语言scanf函数用法完全攻略
热门推荐
jacklin_01的博客
08-09 11万+
本节介绍输入函数 scanf 的用法。scanf 和 printf 一样,非常重要,而且用得非常多,所以一定要掌握。 概述 scanf 的功能用一句话来概括就是“通过键盘给程序中的变量赋值”。该函数的原型为: # include <stdio.h> int scanf(const char *format, ...); 它有两种用法,或者说有两种格式。 1) scanf("输...
C语言scanf函数详细解释
小小鸟
05-22 1万+
函数名: scanf  功 能: 执行格式化输入  用 法: int scanf(char *format[,argument,...]); scanf()函数是通用终端格式化输入函数,它从标准输入设备(键盘) 读取输入的信息。可以读入任何固有类型数据并自动把数值变换成适当的机内格式。 其调用格式为:      scanf("",); scanf()函数返回成功赋值的数据
C语言中连续两个scanf第二个不识别问题
weixin_44906789的博客
03-13 4100
当在C语言中需要两个及以上scanf,运行时却发现只能第一个可以输入,通过查询得知在C语言中,如果使用字符型变量(char类型)时在有连续输入两个及以上的情况下,很容易因为出现垃圾字符二导致程序的流程非法。因为第一个scanf输入后当我们点击enter时第一个存放字符串的(str1)并没有接受这个回车符,而是存入缓冲区中了,当执行第二个scanf时这个回车符就赋给(str2)了所以程序没有提示输入字符就直接执行下面程序了。 解决方法:可以使用fflush (stdin);函数 此函数是清除缓冲区的,将此函
两个scanf语句连用时会出现的问题解决
十四天的寂寞的博客
11-04 4831
PS:新手上路,第一次接触C语言遇到问题,请多指教 这个问题呢,是寂寞在敲自己的第几个程序时遇到的呢,问题是在一个程序中同时使用两个scanf语句时,遇到只能输入第一个scanf语句所能够读取到的值,而第二个scanf语句则是被直接忽略了,进而出现执行结果的问题。 #include&lt;stdio.h&gt; int main() { char tempType; float tem...
连续多个scanf 得到多个字符,针对回车字符的 解决方案
weixin_33858336的博客
11-22 453
2019独角兽企业重金招聘Python工程师标准>>> ...
scanf()函数为什么要输入两次才出结果?
weixin_65147589的博客
01-24 1875
编写一个程序,提示用户输入天数,然后将其转换成周数和天数。通过while循环让用户重复输入天数,当用户输入一个非正值,循环结束。(题目来自C Primer Plus 第六版第五章编程练习) #include<stdio.h> int main(void) { int DAYS; printf("提示用户输入天数: "); scanf("%d", &DAYS); while (DAYS > 0) { /*int weeks = DAYS / 7;*/ print
学习笔记5——scanf 为毛要敲回车?------输入输出缓冲区,键盘缓冲区
奋斗,永不止步
08-31 2674
键盘的内部有一块微处理器,它控制着键盘的全部工作,比如主机加电时键盘的自检、扫描,扫描码的缓冲以及与主机的通讯等等。当一个键被按下时,微处理器便根据其位置,将字符信号转换成二进制码,传给主机和显示器。如果操作人员的输入速度很快或CPU正在进行其它的工作,就先将键入的内容送往内存中的键盘缓冲区,等CPU空闲时再从缓冲区中取出暂存的指令分析并执行。
写文章

热门文章

  • 2024蓝桥杯——宝石问题 3838
  • C语言一维动态数组和二维动态数组(超详细) 2966
  • 春晚刘谦魔术实现(详细解析) 2344
  • C语言之文件操作(超级详细) 1745
  • 数据结构——堆 1376

分类专栏

  • c++ 23篇
  • 数据结构 12篇
  • cpp 19篇
  • 语法 22篇
  • Linux 1篇
  • 内存管理 6篇
  • C语言 36篇
  • 排序 4篇
  • 二叉树 1篇
  • 函数 14篇
  • 指针 5篇
  • 刘谦魔术 1篇
  • 1篇
  • 关键词 1篇

最新评论

  • C++ 容器 deque(双端队列)

    迷迭所归处: 非常不错的技术领域文章分享,解决了我在实践中的大问题!博主很有耐心,更有对知识的热忱和热爱,写了这么实用有效的分享,值得收藏点赞。

  • c++ 内存管理(new&delete&delete[])

    熬夜苦读学习: 优质好文,值得推荐

  • c++ 类 (要学习类这一篇就够了 )

    一代...: 优质好文支持支持

  • c++ 类 (要学习类这一篇就够了 )

    熬夜苦读学习: 优质好文,值得推荐

  • 快排优化(继三数取中、插入排序优化后的再优化)

    熬夜苦读学习: 优质好文,值得推荐

最新文章

  • 二叉树的一些题目
  • c++ 多态
  • Linux操作系统 初识
2024
10月 2篇
09月 2篇
08月 11篇
07月 13篇
06月 4篇
05月 4篇
04月 5篇
03月 19篇
02月 6篇
01月 1篇
2023年3篇

目录

目录

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家福州玻璃钢雕塑报价卡通人玻璃钢雕塑摆件厂家直销五一商场美陈装饰安县玻璃钢造型雕塑景德镇玻璃钢雕塑菏泽太湖石校园玻璃钢景观雕塑徐汇商场开业美陈加工熊猫玻璃钢雕塑外国商场圣诞美陈苏州陇南玻璃钢人物雕塑徐州玻璃钢仿真水果雕塑定制西藏玻璃钢花盆玻璃钢景观雕塑价格表伊犁气球商场美陈装饰咨询电话毕节商场美陈价格萝岗玻璃钢造型雕塑藤县玻璃钢泡沫雕塑常见商场美陈怎么样铜陵定制玻璃钢雕塑制作雕塑玻璃钢模具商场玻璃钢花盆售价江苏步行街玻璃钢雕塑生产厂家定制灰色玻璃钢花盆新郑室外玻璃钢仿铜雕塑厂家长春商场美陈装饰玻璃钢人物雕塑设计厂家江苏玻璃钢雕塑设计商天津商场美陈价格赣州玻璃钢门头雕塑嘉兴步行街玻璃钢雕塑批发香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化