关于C语言中getchar();语句的作用

#include<stdio.h>intmain(void){inti,n;chara[1001];scanf("%d",&n);getchar();for(i=0;i<... #include <stdio.h>
int main(void)
{
int i,n;
char a[1001];
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
gets(a);
printf("%s\n\n",a);
}
while(scanf("%s",a)!=EOF)
printf("%s\n\n",a);

return 0;
}
源码是上面的
请问中间的 getchar(); 这语句有什么用? 求详解析;求高手相助!!!!
展开
 我来答
ylcqucc
推荐于2016-09-11 · TA获得超过1435个赞
知道小有建树答主
回答量:862
采纳率:0%
帮助的人:322万
展开全部
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)

是指上面两行中间的getchar()吗?这里的getchar()函数主要用于吸收缓冲区中残留的字符,避免前面输入数据后,对后面的gets()输入的影响。

执行完scanf()函数后,缓冲区中会留下换行符等其他字符
追问
getchar(); 吸收回车符?
那它作用于后面的while(scanf("%s",a)!=EOF)
printf("%s\n\n",a);吗?

%s本来是不可以输出空格的,不过前面加了 getchar();就可以输出空格,
后面的%s依旧不可以。

模糊不清,高手点拨
追答
?

只能说明你,基础太差,好好看下书,再说吧

解释得如此清楚,还模糊不清????
御巧蛮水凡
2019-12-04 · TA获得超过3767个赞
知道大有可为答主
回答量:3118
采纳率:24%
帮助的人:392万
展开全部
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
是指上面两行中间的getchar()吗?这里的getchar()函数主要用于吸收缓冲区中残留的字符,避免前面输入数据后,对后面的gets()输入的影响。
执行完scanf()函数后,缓冲区中会留下换行符等其他字符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
韶正季夏山
2019-07-19 · TA获得超过3738个赞
知道大有可为答主
回答量:3109
采纳率:26%
帮助的人:217万
展开全部
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
是指上面两行中间的getchar()吗?这里的getchar()函数主要用于吸收缓冲区中残留的字符,避免前面输入数据后,对后面的gets()输入的影响。
执行完scanf()函数后,缓冲区中会留下换行符等其他字符
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式