C语言中用scanf连续输入两个…
来源:互联网 发布:淘宝开个充值店怎么样 编辑:程序博客网 时间:2024/05/01 13:35
原文地址:C语言中用scanf连续输入两个字符类型的问题作者:Hoper
昨天用C编程,遇到一个关于scanf的细节问题,假如运行如下程序: 表面上看这段程序是没有错的,也可以运行,但运行过程中到第二个scanf输入值给k时,程序不会停止,而是直接运行到下一个printf! 为什么?当时百思不得其解。。。 今天上网查了下才知道,原来scanf是从标准输入缓冲区中读取输入的数据,而%c的字符输入格式会接收回车字符,在输入第一个scanf时输入字符后按回车结束,输入缓冲中保存了这个回车符,遇到第二个scanf时,它自动把这个回车符赋给了k。而如果第二个scanf的输入格式不是%c时,由于格式不匹配,这个回车符会被自动忽略,所以只有在连续输入两个字符格式时才会出现这样的问题! 解决办法:(二办法任选其一) 1。清空输入缓冲区 第一个scanf后加入语句:fflush(stdin); //C语言清空输入缓冲区函数 2。格式控制中加入空格 将第二个scanf改为:scanf("%c",&ch2);//在%号前面加一个空格
#include<stdio.h>
int main(void){
char a[100];
char k;
int i,loc;
printf("请输入字符串:");
scanf("%s",a);
printf("n请输入要插入的字符:");
scanf("%c",&k);
printf("n请输入要插入的位置:");
scanf("%d",&loc);
int main(void){
scanf格式输入时要求输入格式与格式控制符中的完全一样(如:scanf("abcd%c",&ch);输入时必须输入abcde,ch得到的值为e)空格可以抵消前面输入的回车符。
- C语言中用scanf连续输入两个…
- C语言中用scanf连续输入两个字符类型的问题
- C语言中用scanf输入双精度浮点数
- c语言中连续使用两个scanf的问题
- c 语言中连续输入两个字符串的问题
- C语言的scanf输入
- c语言里面用scanf连续输入字符型数据常见问题
- C语言中用scanf函数输入字符时,为什么要在输入控制符%c前面加空格?
- 【转载】C语言中scanf格式化输入函…
- C语言输入之scanf(转)
- C语言中scanf格式化输入函数
- C语言中scanf格式化输入函数
- C语言中scanf格式化输入函数
- C语言输入函数scanf()
- C语言中scanf格式化输入函数
- C语言格式输入函数scanf()详解
- C语言的格式化输入函数scanf
- C语言scanf()函数:格式化输入函数
- (8)面向对象多态
- jquery插件写百度搜索栏特效模糊查询
- doGet和doPost的区别
- (9)面向对象内部类
- 提高程序性能
- C语言中用scanf连续输入两个…
- think in java 学习总结
- s3c2440a pwn模块学习笔记
- okular
- 浅谈java中的单态设计模式
- 第10章 CLOCK
- QGtkStyle was unable to detect the current GTK+ theme接
- 嵌入式linux应用开发手册笔记
- 第9章 中断