最新消息:点击查看大S的省钱秘笈

C语言 读入字符时需要注意的一个问题

编程相关 Slyar 128浏览 0评论

文章作者:姜南(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语言 读入字符时需要注意的一个问题

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (3)

  1. 不学习脑子都快生锈了。
    打工皇帝8年前 (2008-11-17)回复
  2. 这个才是最好的: fflush(stdin);
    felix0218年前 (2008-11-17)回复
    • 以前写过那个了,这次换一个~嘎嘎~
      Slyar8年前 (2008-11-20)回复