C语言里getchar()作用?

请问这段程序里,为什么一定需要那个getchar()?好像是获得一个字符吧,回车键?其中的原理是什么,请详细剖析一下啊,感激不尽!

getchar()的作用是从键盘上读入一个字符,并带回显。
getchar()函数等待输入直到按回车才结束,回车前的所有输入字符都会逐个显示在屏幕上,但只有第一个字符作为函数的返回值。

getchar函数原型如下:
函数格式:int getchar(void);
功 能:从标准输入设备读取下一个字符
返 回 值:返回所读字符,否则返回-1
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-11-16
getchar()的作用是从键盘上读入一个字符,并带回显。
getchar()函数等待输入直到按回车才结束,回车前的所有输入字符都会逐个显示在屏幕上,但只有第一个字符作为函数的。

getchar函数原型如下:
函数格式:int getchar(void);
功 能:从标准输入设备读取下一个字符
返 回 值:返回所读字符,否则返回-1本回答被网友采纳
第2个回答  2014-12-07
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)

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

执行完scanf()函数后,缓冲区中会留下换行符等其他字符
第3个回答  2014-01-04
是c语言中的一个函数,
可以用它来赋一个字符的值.

例如:char a;
a=getchar()();
当你在键盘上输入一个字符后按回车;(输入u)
那么字符变量a的值就是'u'了.追问

那请问为什么回车不能被scanf("%s",fileName);接收吗?

追答

是不能的,楼上说的理由差不多吧

第4个回答  2014-01-04
两个getchar函数的目的都是为了吸收上一次输入的回车符,以防止gets获取空字符串追问

那请问为什么回车不能被scanf("%s",fileName);接收吗?

追答

显然不能
除非写作scanf(" %s",fileName);或scanf("%*c%s",fileName);或scanf("%[^\n]",fileName);

追问

还是不太明白,scanf(" %s",fileName);那%前面有空格吗?为什么?
scanf("%*c%s",fileName);那个%*c啥意思?*啥意思?
scanf("%[^\n]",fileName);%[^\n]是什么意思?

追答

目的都是不接收或者跳过回车符,防止接收空字符串

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网