c语言中用getchar()输入字符是回车算一个字符吗

 我来答
紫忠忻酉
2019-04-16 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:28%
帮助的人:1117万
展开全部
是的,c语言中用getchar()输入字符是回车算一个字符。
解析:getchar()是stdio.h中的库函数,作用是从stdin流中读入一个字符。如果stdin有数据的话不用输入它就可以直接读取了。
当程序调用getchar时,程序就等着用户按键。用户输入的字符被存放在键盘缓冲区中,直到用户按回车为止(回车字符也放在缓冲区中)。即回车是用户输入结束的标志,同时也会将回车字符也放在缓冲区中,此时getchar才开始从键盘缓冲区中读取数据,包括回车符。
扩展资料:
相近的函数getch:
getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回,getch返回值是用户输入的ASCⅡ码,出错返回-1。
输入的字符不会回显在屏幕上.getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行。
参考资料来源:百度百科-getchar
景亮银琴
2019-10-12 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:32%
帮助的人:679万
展开全部
#include
int
main(void)
{
int
c;
/*
getchar从标准输入(stdin)读入字符,标准输入是行缓冲的,也就是你输入回车后,或者缓冲区满了,系统才读
*/
while
((c
=
getchar())
!=
'\n')
//getchar用while循环读入缓冲区的值,直到遇到回车
printf("%c",
c);
//输出
return
0;
}
如果非要用for
就把while换成
for(;;)
{
c=getchar();
if(c=='\n')
break;
else
printf("%c",
c);
}
或者
for(;(c=getchar())!='\n';)
printf("%c",
c);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
花德文香
2019-04-15 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:30%
帮助的人:1950万
展开全部
算一个字符.
例如下面程序,你输入a回车
char
ch1,ch2;
printf("Enter
a\n");
ch1=getchar();
printf("ch1=%c
",ch1);
ch2=getchar();
printf("ch2=%c|
",ch2);
printf("---ch2=0x%02x|
",ch2);
可以看见ch2回车的动作和它的ASCII值
0x0a
-------------
顺便说一句
用scanf()
输入时,最好加一个
\n,
这样下接
getchar();
时不会犯错
scanf("%d...\n",&i,...);
ch
=
getchar();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
原秀荣衷俏
2019-04-17 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:28%
帮助的人:743万
展开全部
还是让我举个例子吧!
对于以下代码:
ch1=getchar();
ch2=getchar();
如果我从键盘输入一个字符,假如是'a'吧,然后按回车.
那么'a'成功赋给ch1.
但如果我又想从键盘输入另一个字符,假如是'b'吧(当然你也可以输入'a'),但此时对ch2的赋值是不成功的.理由是第一次输入时你按下的回车,编译系统会把回车看成是一个字符,自动把它赋到ch2中了!
如果你想不让刚才按下的回车自动赋到ch2中,你可以在上面两个语句之间插入语句getchar();
这个getchar()语句可以把那个回车给"吃掉".
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式