C语言中getchar()怎么用?

 我来答
四舍五不入6
高粉答主

2020-01-13 · 醉心答题,欢迎关注
知道答主
回答量:147
采纳率:100%
帮助的人:2.1万
展开全部

getchar()返回输入流中的一个字节,如果输入流已经到尾部,返回EOF(-1)

例如: 

#define EOF -1

void func(void)

{

int c = getchar();//getchar 返回值是int

if(c==EOF)

return;

func();//递归调用func函数,实现倒序输出

putchar(c);//输出字符

这个函数会在输入EOF后结束读取,然后输出输入的倒续。

扩展资料:

getchar函数语法

1、函数声明

int getchar(void)

2、参数

3、功能

C库函数int getchar(void)从标准输入 stdin 获取一个字符(一个无符号字符)。这等同于getc带有 stdin 作为参数。

4、返回值

该函数以无符号 char 强制转换为 int 的形式返回读取的字符,如果到达文件末尾或发生读错误,则返回EOF。

5、用法

该函数声明在stdio.h头文件中,使用的时候要包含stdio.h头文件。

参考资料来源:百度百科-getchar()

jackwind1987
2013-11-23 · TA获得超过2738个赞
知道大有可为答主
回答量:1268
采纳率:50%
帮助的人:480万
展开全部
要明白这个这个问题,首先要理解输入缓冲的机制和scanf的原理。
当运行控制台程序的时候,会有一个输入缓冲区,这个缓冲区就是放置你输入的字符串的,无论你输入的是数字还是字符,放到缓冲区里都是字符串,只有你调用scanf时指定不同的格式才会产生不同的含义。只有当你输入回车的时候,才会把你的输入添加到缓冲区里,当输入回车之前,scanf和getchar都还没有调用。
当你调用scanf的时候,会首先检查缓冲区是否还有内容,如果没有则程序停止,接受输入,当你输入回车后,你的输入进入缓冲区,然后scanf从缓冲区中拿出(拿出的意思是从缓冲区复制一份放到变量里,然后从缓冲区中删除)它想要的字符,如果没有它想要的,则不会从缓冲区中删除任何东西,继续运行。关键是什么是它想要的,这就跟scanf的第一个参数里指定的格式有关了。
如果格式是%c,那么任何字符都是它想要的,所以你第二个程序里的第二个scanf("%c")会得到‘+’后面的空格' '。如果格式是%d,则会忽略任何空白字符(空格、回车、制表符等),忽略的意思是,从缓冲区里删除,但并不保存;如果遇到数字,则拿出并保存给后面的整数,也就是说%d的时候,scanf想要的字符是数字和空白符。所以你第一个程序里的第二个scanf("%d")忽略掉了空格,正确输入了数字。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
潮汐之涌动
2014-10-05 · TA获得超过439个赞
知道小有建树答主
回答量:287
采纳率:100%
帮助的人:157万
展开全部
char c;
c=getchar();//表示输入一个字符
不过我平时太多直接 getchar(); 以此来直接吃掉前面scanf的那个回车以防干扰下面的输入
另外还有一个getch(),这个作用与getchar()一样是输入一个字符,不过getchar()输入了在控制台会显示字符,getch()不会显示,所以getch()常用作密码输入
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qqjwr
推荐于2017-11-23 · TA获得超过1015个赞
知道小有建树答主
回答量:162
采纳率:0%
帮助的人:120万
展开全部
main()
{ char c;
c=getchar(); /*从键盘接收一个字符,只能一个,多于一个其余作废*/
putchar(c);
}
还可以这样用:
main()
{
putchar(getchar());
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
张清竹卜仪
2019-03-21 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:25%
帮助的人:635万
展开全部
ch=getchar();等待从键盘上输入一个字符
putchar(ch);输出此字符
他们包含在头文件 #include
中.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式