文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作。
今天做题时候遇到的问题,先看一段代码:
#include <stdio.h>
int main(){
int n;
char a;
scanf(“%d”,&n);
scanf(“%c”,&a);
printf(“%c\n”,a);
return 0;
}
我们希望先读入一个整数n,然后再读入一个字符a,最后输出字符a。但是经过测试我们发现上面这段代码是无法实现我们的要求的,它只会输出一个空行,这是为什么呢?
我们一步一步分析,当我们输入数字n以后,会按一个回车确认输入。我们知道换行符也是字符(\n),所以这个换行符也同样进入了等待读入字符的a,因此我们输出的a就是一个换行符。。。
那么怎么解决呢?很简单,只要我们使用getchar()函数忽略这个换行符就可以了,最后的代码如下:
#include <stdio.h>
int main(){
int n;
char a;
scanf(“%d”,&n);
getchar();
scanf(“%c”,&a);
printf(“%c\n”,a);
return 0;
}
今天做题的时候不止一次遇到这个问题,特地写出来。
转载请注明:Slyar Home » C语言 读入字符时需要注意的一个问题