C语言中scanf问题
来源:互联网 发布:画原型的软件 编辑:程序博客网 时间:2024/05/01 20:22
scanf是从标准输入缓冲区中读取输入的数据,而%c的字符输入格式会接收回车字符,在输入第一个scanf时输入字符后按 回车结束,输入缓冲中保存了这个回车符,遇到第二个scanf时,它自动把这个回车符赋给了ch2。而如果第二个scanf的输入格式不是%c时,由于格 式不匹配,这个回车符会被自动忽略,所以只有在连续输入两个%c的格式时才会出现这样的问题!
解决办法:(二办法任选其一)
1。清空输入缓冲区
第一个scanf后加入语句:fflush(stdin); //C语言清空输入缓冲区函数
2。格式控制中加入空格
将第二个scanf改为:scanf(” %c”,&ch2);//在%号前面加一个空格
scanf格式输入时要求输入格式与格式控制符中的完全一样(如:scanf(“abcd%c”,&ch);输入时必须输入abcde,ch得到的值为e)空格可以抵消前面输入的回车符。
以上内容转自 C语言中用scanf连续输入两个字符类型的问题
同样的 如果你之前用了一个scanf函数 你下一个scanf要输入字符时也要加一个空格 如
scanf("%d",&replacenum); for (flag1 = 0;flag1 < replacenum;flag1++) { scanf(" %c %c",&before[flag1],&after[flag1]); }
否则输入会提前结束。
0 0
- C语言中scanf问题
- C语言中scanf的问题
- C语言scanf问题
- c语言中 scanf
- C语言中scanf
- c语言scanf缓冲区问题
- C语言Scanf的问题
- c语言 scanf问题相关
- c语言scanf()函数问题
- C语言中关于scanf()函数返回值问题
- C语言中利用scanf语句输入多个值的问题
- 关于C语言中scanf()的相关问题
- C语言中scanf函数输入回车符的问题
- C语言-循环中套用scanf()出现的问题
- C语言中scanf函数输入回车符的问题
- C语言中scanf函数输入回车符的问题
- c语言中连续使用两个scanf的问题
- C语言中scanf函数输入回车符的问题
- myeclipse打开时出现"Workspace in use or cannot be created, choose a different one.
- 数据链路层
- 小米3手机无法打开WLAN ,WIFI 的解决方法,不需刷机
- 静态链接
- Centos安装Node.js简单方法
- C语言中scanf问题
- C语言中的变量存储知识
- 【Linux C代码分享二】UDP Socket示例程序:使用fgets函数获取屏幕输入
- TCP笔记
- JS如何获取一个未知DIV高度的方法
- 装载和动态链接
- 冠字号查询系统中HBase写入数据性能测试
- js的window.onscroll事件兼容各大浏览器!
- IDA功能简介(2)----流程图功能