C语言scanf连续输入两个字符
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连续输入两个字符相关推荐
- c语言怎么同时输入两个字符,解决C语言中使用scanf连续输入两个字符类型的问题...
昨天用C编程,遇到一个关于scanf的细节问题,假如运行如下程序: #include int main() { char ch1,ch2; printf("Input for ch1:/n& ...
- c语言如何用循环输入字符串,C语言使用scanf连续输入字符串出现的问题
#include int main() { char a,b; scanf("%c",&a): scanf("%c",&b); printf(& ...
- c语言用getchar函数输入两个字符c1,c语言:用getchar函数读入两个字符给c1,c2,用putchar和printf输出。思考问题...
用getchar函数读入两个字符给c1,c2,分别用putchar和printf输出这两个字符.思考以下问题: (1)变量c1和c2定义为字符型还是整型?或二者皆可? (2)要求输出c1和c2的ASC ...
- C语言字符变量输出值,C语言,交换任意两个字符型变量的值并输出结果。要求:利用getchar和putchar函数。...
C语言,交换任意两个字符型变量的值并输出结果.要求:利用getchar和putchar函数.以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶 ...
- c语言代码,输入两个数,输出第一个数到第二个数之间所有的数
用C语言实现,输入两个数,输出第一个数到第二个数之间包含的所有数 #include <stdio.h> int num(int x, int y); int main() {int a1, ...
- c语言两个字母如何比较,c如何比较两个字符 C语言中怎么判断两个字符相同
可以使用库函数strcmp判断,具体如下: strcmp是C语言比较字符串的库函数,形式为int strcmp(char *a, char *b); 该函数会对a和b的每个字符,按照ascii码值比较 ...
- C语言基础:输入两个分数,输出它们的和以及差。(以分数形式)
题目 :C语言基础:输入两个分数,输出它们的和以及差.(以分数形式) 代码如下: #include"stdio.h" int main() { int a=0,b=0,c=0,d= ...
- c语言输入两个正整数m和n求其最小公倍数,用C语言编写:输入两个正整数m和n,求其最大公约数和最小公倍数....
用C语言编写:输入两个正整数m和n,求其最大公约数和最小公倍数. 來源:互聯網 2010-05-25 15:19:26 評論 分類: 電腦/網絡 >> 程序設計 >> 其他 ...
- C语言实现:输入一串字符把里面的A、a字符替换成C输出
C语言实现:输入一串字符把里面的A.a字符替换成C输出 #include "stdafx.h" #include<stdio.h> #include<string ...
最新文章
- TCP-Z V2.6.2 Build 20090409 (半开连接数监控与破解)
- makefile多目录的.c 格式.cpp混合编译
- Python:用生成器的方式计算任意起止范围内质数的和。
- QML WebEngineView简单用法和常用接口
- catia钣金根据线段折弯_折弯大神分析钣金折弯下刀顺序
- 信息学奥赛一本通C++语言——1087:级数求和
- java addall equals_Java究极打基础之ArrayList篇
- wallpaper怎么导入视频_抖音上爆火的手绘视频怎么做?这篇文章来教你!
- C#使用SmtpClient发送邮件解决授权码配置问题
- JQuery学习系列(三)语法
- spark生成DataFrame
- 怎么修改管家婆服务器密码忘记,管家婆操作员密码找回教程.doc
- 【软件开发】【项目管理】项目管理那些事儿之那些权力
- matlab lc电路仿真,Matlab第五章 Simulink模拟电路仿真.pdf
- 计算机图形学与图像处理图形学的研究内容
- 【2021自我知识蒸馏】Extracting knowledge from features with multilevel abstraction
- 计算机地图制图原理与算法,计算机地图制图原理与算法基础.ppt
- Excel VBA语句集300
- C++多线程学习06 利用RAII
- 差分隐私(Differential Privacy)定义及其理解
热门文章
- NGCF,论文Neural Graph Collaborative Filtering的理解
- Windows系统的MBR磁盘分区--MBR的结构和作用(四)之扩展分区EBR
- H5盲盒源码商|城盲盒源码PHP+视频搭建视频部署教程
- inf文件安装Minifilter驱动
- Learn Git Branching 学习笔记(高级话题篇)
- 用于时间序列异常值检测的全栈机器学习系统
- 基于Java的并发文件下载助手
- 基于阿里云的MQTT协议入门一:注册及开通阿里云IoT物联网平台
- Science:只要跟着生物钟吃,就没那么容易胖
- ASF之SAR云计算(成果包括RTC GAMMA、InSAR GAMMA、autoRIFT)