C语言scanf函数连续输入两个字符出现的问题
上代码

//初始代码,输入1,2,a,b,每次输入按了一次回车
int a,b;
char c,d;
scanf("%d%d",&a&b);
scanf("%c%c",%c&d);
printf("%d\n%d\n",a,b);
printf("%c\n%c",c,d);
//预期输出1,2,a,b
//结果输出
1
2
a//上一行不是没有,是一个回车字符

根本原因:
scanf函数是从标准缓冲区读取字符的,由于每次输入之后都按了一次回车,标准缓冲区记录了这次回车,而char类型会记录这个回车,并赋值给了变量d

解决方案一
通过fflush(stdin);清除标准缓冲区,上代码

int a,b;
char c,d;
scanf("%d%d",&a&b);
fflush(stdio);
scanf("%c",%c);
fflush(stdio);
scanf("%c",&d);
printf("%d\n%d\n",a,b);
printf("%c\n%c",c,d);
//得到预期结果

解决方案二(推荐)
在%c前面加个空格,空格可抵消前面输入的回车符,上代码

int a,b;
char c,d;
scanf("%d%d",&a&b);
scanf(" %c",%c);
scanf(" %c",&d);
printf("%d\n%d\n",a,b);
printf("%c\n%c",c,d);
//得到预期结果

解决方案三
多设置一个变量来吸收前面的回车字符

int a,b;
char c,d,e;
scanf("%d%d",&a&b);
scanf("%c",&c);
scanf("%c",&d);
scanf("%c",&e);
printf("%d\n%d\n",a,b);
printf("%c\n%c",c,e);
//得到预期结果

C语言scanf连续输入两个字符相关推荐

  1. c语言怎么同时输入两个字符,解决C语言中使用scanf连续输入两个字符类型的问题...

    昨天用C编程,遇到一个关于scanf的细节问题,假如运行如下程序: #include int main() { char ch1,ch2; printf("Input for ch1:/n& ...

  2. c语言如何用循环输入字符串,C语言使用scanf连续输入字符串出现的问题

    #include int main() { char a,b; scanf("%c",&a): scanf("%c",&b); printf(& ...

  3. c语言用getchar函数输入两个字符c1,c语言:用getchar函数读入两个字符给c1,c2,用putchar和printf输出。思考问题...

    用getchar函数读入两个字符给c1,c2,分别用putchar和printf输出这两个字符.思考以下问题: (1)变量c1和c2定义为字符型还是整型?或二者皆可? (2)要求输出c1和c2的ASC ...

  4. C语言字符变量输出值,C语言,交换任意两个字符型变量的值并输出结果。要求:利用getchar和putchar函数。...

    C语言,交换任意两个字符型变量的值并输出结果.要求:利用getchar和putchar函数.以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶 ...

  5. c语言代码,输入两个数,输出第一个数到第二个数之间所有的数

    用C语言实现,输入两个数,输出第一个数到第二个数之间包含的所有数 #include <stdio.h> int num(int x, int y); int main() {int a1, ...

  6. c语言两个字母如何比较,c如何比较两个字符 C语言中怎么判断两个字符相同

    可以使用库函数strcmp判断,具体如下: strcmp是C语言比较字符串的库函数,形式为int strcmp(char *a, char *b); 该函数会对a和b的每个字符,按照ascii码值比较 ...

  7. C语言基础:输入两个分数,输出它们的和以及差。(以分数形式)

    题目 :C语言基础:输入两个分数,输出它们的和以及差.(以分数形式) 代码如下: #include"stdio.h" int main() { int a=0,b=0,c=0,d= ...

  8. c语言输入两个正整数m和n求其最小公倍数,用C语言编写:输入两个正整数m和n,求其最大公约数和最小公倍数....

    用C语言编写:输入两个正整数m和n,求其最大公约数和最小公倍数. 來源:互聯網  2010-05-25 15:19:26  評論 分類: 電腦/網絡 >> 程序設計 >> 其他 ...

  9. C语言实现:输入一串字符把里面的A、a字符替换成C输出

    C语言实现:输入一串字符把里面的A.a字符替换成C输出 #include "stdafx.h" #include<stdio.h> #include<string ...

最新文章

  1. TCP-Z V2.6.2 Build 20090409 (半开连接数监控与破解)
  2. makefile多目录的.c 格式.cpp混合编译
  3. Python:用生成器的方式计算任意起止范围内质数的和。
  4. QML WebEngineView简单用法和常用接口
  5. catia钣金根据线段折弯_折弯大神分析钣金折弯下刀顺序
  6. 信息学奥赛一本通C++语言——1087:级数求和
  7. java addall equals_Java究极打基础之ArrayList篇
  8. wallpaper怎么导入视频_抖音上爆火的手绘视频怎么做?这篇文章来教你!
  9. C#使用SmtpClient发送邮件解决授权码配置问题
  10. JQuery学习系列(三)语法
  11. spark生成DataFrame
  12. 怎么修改管家婆服务器密码忘记,管家婆操作员密码找回教程.doc
  13. 【软件开发】【项目管理】项目管理那些事儿之那些权力
  14. matlab lc电路仿真,Matlab第五章 Simulink模拟电路仿真.pdf
  15. 计算机图形学与图像处理图形学的研究内容
  16. 【2021自我知识蒸馏】Extracting knowledge from features with multilevel abstraction
  17. 计算机地图制图原理与算法,计算机地图制图原理与算法基础.ppt
  18. Excel VBA语句集300
  19. C++多线程学习06 利用RAII
  20. 差分隐私(Differential Privacy)定义及其理解

热门文章

  1. NGCF,论文Neural Graph Collaborative Filtering的理解
  2. Windows系统的MBR磁盘分区--MBR的结构和作用(四)之扩展分区EBR
  3. H5盲盒源码商|城盲盒源码PHP+视频搭建视频部署教程
  4. inf文件安装Minifilter驱动
  5. Learn Git Branching 学习笔记(高级话题篇)
  6. 用于时间序列异常值检测的全栈机器学习系统
  7. 基于Java的并发文件下载助手
  8. 基于阿里云的MQTT协议入门一:注册及开通阿里云IoT物联网平台
  9. Science:只要跟着生物钟吃,就没那么容易胖
  10. ASF之SAR云计算(成果包括RTC GAMMA、InSAR GAMMA、autoRIFT)