c语言中scanf("%c",&c)吃掉回车或者空格字符的问题
2012-10-17 18:45
344 查看
问题来源http://zhidao.baidu.com/question/487898822.html?oldq=1#reply-box-1224608638
下面使用第二种方法
测试结果
可以看出a的值异常了,为什么呢?
这应该和编译器有关系,因为%1s的输入方式的问题。
解决方法有两种:
第一:
将这两个变量的声明换一下,哈哈,以前老师说过。但我感觉着不是解决方法,如果还有其他的变量,这种方式是不是还会危害其他呢。
第二:
b声明成字符创的形式,哈哈,这个好。。。。
结果为:
#include<stdio.h> void main(){ int a; char b; printf("input a integer\n"); scanf("%d",&a); //这里需要吸收 回车符 下面有种方法,第二种我没看懂 谁能改下代码 告诉我第二种怎么用 printf("input a char\n"); scanf("%c",&b); printf("%d,%c\n",a,b); } /* (1)用getchar()清除 (2)用"%1s"来限制 (3)用格式串中空格或"%*c"来"吃掉" (4)用函数fflush(stdin)清除全部剩余内容 */
下面使用第二种方法
#include<stdio.h> int main(){ int a; char b; printf("input a integer\n"); scanf("%d",&a); //这里需要吸收 回车符 下面有种方法,第二种我没看懂 谁能改下代码 告诉我第二种怎么用 printf("input a char\n"); scanf("%1s",&b); printf("%d %c\n",a,b); system("pause"); return 0; }环境(dev c++)
测试结果
可以看出a的值异常了,为什么呢?
这应该和编译器有关系,因为%1s的输入方式的问题。
解决方法有两种:
第一:
char b; int a;
将这两个变量的声明换一下,哈哈,以前老师说过。但我感觉着不是解决方法,如果还有其他的变量,这种方式是不是还会危害其他呢。
第二:
#include<stdio.h> int main(){ int a; char b[2]; printf("input a integer\n"); scanf("%d",&a); //这里需要吸收 回车符 下面有种方法,第二种我没看懂 谁能改下代码 告诉我第二种怎么用 printf("input a char\n"); scanf("%1s",&b); printf("%d %c\n",a,b[0]); system("pause"); return 0; }
b声明成字符创的形式,哈哈,这个好。。。。
结果为:
相关文章推荐
- c语言scanf()停止接受输入及scanf("%c",&c)吃掉回车或者空格字符的问题
- C语言学习笔记——scanf("%c",&ch) 读取字符
- c语言中scanf输入带空格的字符串以及scanf输入单个字符的问题
- 解决c语言中调用scanf()或者strcpy()函数报错问题
- 在字符串中使用特殊字符<>"'&空格
- 写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出"1 9 9 0"。
- scanf("%c",&c)前的printf函数调用问题
- for循环下的scanf("%s%c")问题
- 关于"密码最短长度为7,其中必须包含以下非字母数字字符: 1”的问题
- 嵌入式 关于scanf("%c",&ch)实现拦截时候出现直接跳过的问题
- VS里面按键盘"Ctrl+F" 或者选 编辑 菜单里面的 查找和替换 也没有对话框弹出来 问题解决。
- 嵌入式C语言中__DATE__ " "__TIME__语法问题
- _stdcall与_cdecl区别 (QT 加载MFC的dll时,要注意的"_stdcall"或者CALLBACK的问题)
- 学习c语言遇到的一些问题(3)(Linux)(getchar()和gets()重点:scanf产生的回车符问题)
- ASP.net中"名称以无效字符开头"问题解决?(转自:http://zhfen.cnblogs.com/archive/2006/05/25/358555.html)
- 【C语言】 缓冲区问题 循环使用getchar scanf会受到换行符'\n'的干扰
- scanf("%d\n",&a);中\n带来的问题的解释
- 【c语言】输入一个4位数字,要求输出这4个数字字符,但每两个数字间空一个空格。如:1990->1 9 9 0
- python脚本处理文本时遇到的字符问题:UnicodeDecodeError: " " codec can't decode byte
- ASP.net vs2010 中"名称以无效字符开头"问题解决?