怎么跳出这个循环

来源:百度知道 编辑:UC知道 时间:2024/05/24 13:10:05
char c;
while(c!=13)
{
c=getchar();

printf("%c", c);
if(c==13)break;
}
return 0;
怎么跳不出循环?

你没有分清楚getch和getchar的区别
在你的代码中需要将:
c=getchar();
改为
c=getch();

getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).
getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回

很明显,你的代码是希望用户输入一个字符就判断一个,所以应该用getch

你定义的c是字符类型,字符类型值为13的字符是键盘上没有的。
只有把c的类型定义为int,后面的跟着修改,或者把13改成48(48的字符是0,输入0即可退出循环)。
e1:
char c;
while(c!=48)
{
c=getchar();

printf("%c", c);
if(c==48)break;
}
return 0;

e2:

int c;
while(c!=13)
{
scanf("%d",&c);

printf("%d", c);
if(c==13)break;
}
return 0;

- -!!
if语句是多余的,13的ascII码值你去看下吧
http://www.51ajax.com/demo/ascii/ascii.htm
好像13不是字母哦,字母是从41-122

回车是10