关于C语言中输入字符的问题
2011-10-12 17:58
281 查看
问题举例:
#include "stdio.h"
void main()
{
int a;
char c;
printf("请输入年龄:");
scanf("%d",&a);
printf("请输入性别:");
scanf("%c",&c);
……
}
问题就出在scanf("%c",&c)上
我知道前面可以用一个getchar()把回车吃掉,但如果在%c前面加一个空格也可以避免这个错误.。
原因:
scanf("<格式化字符串>",<地址表>);
格式化字符串有三种类型:
1)格式化说明符,%c,%d...
2、 空白字符: 空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。
3、 非空白字符: 一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。
所以呢,在%c的前面必须有一个空格,否则系统会将你前面输入别的值之后键入的回车符读入该变量,造成死循环。当然,如果scanf("%c",&varname)是第一条读入语句,就可以不需要空格。
相关文章推荐
- 关于C语言使用输入函数后键盘缓冲区还有多余字符没的问题
- 关于c语言中的字符数组的输入问题
- C语言中用scanf连续输入两个字符类型的问题
- c语言中scanf输入带空格的字符串以及scanf输入单个字符的问题
- 一个关于C语言输入的问题
- C语言中用scanf连续输入两个字符类型的问题
- 关于XhsEmoticonsKeyboard仿微信表情键盘,某些情况下输入字符崩溃问题解决办法
- 关于AutoCompleteTextView 为什么必须输入两个字符才能出现补全提示的问题的解决办法
- 关于Linux C语言开发字符越界的问题
- C语言中关于字符串的输入问题
- 关于输入字符问题
- 关于AspxGridView中 关于输入字符数限制的问题
- 关于AutoCompleteTextView 为什么必须输入两个字符才能出现补全提示的问题的解决办法
- 关于“c语言从键盘输入字符串到指针数组”的问题
- 关于C语言中用scanf语句输入带有空格字符串问题
- C语言中关于字符数组输入,scanf没执行
- 关于AutoCompleteTextView 为什么必须输入两个字符才能出现补全提示的问题的解决办法
- 关于c语言的输入函数问题
- 关于C语言的字符数组问题
- 关于AutoCompleteTextView 为什么必须输入两个字符才能出现补全提示的问题的解决办法