C语言,关于连续使用多个scanf()函数读取字符的事

   日期:2020-10-18     浏览:137    评论:0    
核心提示:先来看这么一段代码int a;char cscanf("%d", &a);scanf("%c", &c);想要用多个scanf来进行字符的输入,我们在输入字符前不能输入空白字符(空格回车),否则scanf在读取字符时就会自动把输入队列中的空白字符读取到%c中。那么如何避免这种情况呢。首先,把所有的输入放到同一个scanf()函数中就能避免这种情况。如果非要使用多个scanf的话,那么有两种选择。在输入字符之前,不要添加任何空白字符,直接接着上一个输入输入字符就行了如果

先来看这么一段代码

int a;
char c
scanf("%d", &a);
scanf("%c", &c);

想要用多个scanf来进行字符的输入,我们在输入字符前不能输入空白字符(空格回车),否则scanf在读取字符时就会自动把输入队列中的空白字符读取到%c中。

注意,只有一个 scanf()中的第一个 %c会遇到这样的问题

那么如何避免这种情况呢。
首先,把所有的输入放到同一个scanf()函数中就能避免这种情况。

如果非要使用多个scanf的话,那么有两种选择。

  1. 在输入字符之前,不要添加任何空白字符,直接接着上一个输入输入字符就行了
  2. 如果输入字符前非要添加空白字符的话,那么就用getchar()把这个空白字符吃掉就好了
//这样用
int a; char c;
scanf("%d", &a);
getcahr();
scanf("%c", &c);

这样就可以在两个输入之间添加空白字符了

同样的,C++中,使用 cin对象进行输入时,也会遇到类似问题,解决方法也是类似的:用cin.get()吃掉

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服