C语言中回车的ASCII码值是多少?

我打的程序如下:chari;i=getch();while(i=='\r'){printf("pig");scanf("%c",&i);}getch();为何我连续打回车... 我打的程序如下: char i; i=getch(); while(i=='\r') { printf("pig"); scanf("%c",&i); } getch(); 为何我连续打回车不能打印pig,如果我打成 { printf("pig"); i=getch(); } getch(); 连续敲打回车就能显示很多pig. 这是为什么? 展开
 我来答
钊越悟成天
2019-07-14 · TA获得超过3681个赞
知道大有可为答主
回答量:3077
采纳率:29%
帮助的人:175万
展开全部
很正常
char
i;
i=getch();
//在这里,你按Enter
后,i的值为
13,即'\r'
while(i=='\r')
//条件满足,打印一个pig
{
printf("pig");
scanf("%c",&i);
//但是在这里,你按Enter
后,i的值为
10,即'\n'
}
getch();
为了验证上面的注释是否正确,可以加几条测试语句:
#include<stdio.h>
#include<conio.h>
void
main()
{
char
i;
i=getch();
printf("%d\n",i);
//打印i的值,13
while(i=='\r')
{
printf("pig\n");
scanf("%c",&i);
//这里会产生一个空行,下面结果里有。
printf("%d\n",i);
//打印i的值,10
}
getch();
}
运行结果为:
13
pig
10
Press
any
key
to
continue
没错吧,呵呵
注意,pig和10之间的空行。
所以,不会不断打印pig的原因是,getch()和scanf()返回的值根本不一样,while循环只会执行一次,按第二次Enter键条件就不满足了,自动跳出循环
至于第二个程序为什么能不断的打印pig,现在知道原因了吧,呵呵,因为getch()取得的值一样,都是13,所以才能不断地执行循环呀。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式