关于break的一个小程序
本帖最后由 风之残月 于 2014-11-9 22:43 编辑#include <stdio.h>
void main()
{
int i=0;
char c;
while(1) /*设置训循环*/
{
c='\0'; //变量赋初值
while (c!=13&&c!=27)//键盘接受数字附直接按到回车后者Esc键
{
c=getchar();
printf("%c\n",c);
}
if(c==27)
break; //判断若按Esc键可推出循环
i++;
printf("The No.is %d\n",i);
}
printf("The end");
}
这个程序为什么不按回车或空格不推出啊?好像进了死循环 但又没查出错误 大家帮忙看下吧
int i = 0;
char c;
while(1)
{
c = '\0';
while(c != 13 && c != 27)
{
c = _getch();
printf("%c ",c);
}
if(c == 27)
{
break;
}
i++;
printf("the no. is %d\n",i);
}
printf("the end\n");
system("pause");
你把#include <conio.h>包含进来,用_getch()来获取你按键获取到的字符,你用getchar()获取不到esc键。你看一下百度百科。http://baike.baidu.com/view/751665.htm?fr=aladdin这里面说的很清楚。 本帖最后由 yvqiang 于 2014-8-12 10:27 编辑
查ASCII码表可以得出
char 类型13代表\r回车
char 类型27代表ESC退出给你个样儿:
#include <stdio.h>
void main()
{
int i = 0;
char c;
while(1)
{
c = '\0';
while(c != 13 && c != 27)
{
c = getch();
printf("%c ",c);
}
if(c == 27)
{
break;
}
i++;
printf("the no. is %d\n",i);
}
printf("the end\n");
system("pause");
}
yvqiang 发表于 2014-8-12 10:13
查ASCII码表可以得出
char 类型13代表\r回车
char 类型27代表ESC退出给你个样儿:
你这个程序也有问题 它并不输出我输入的字符 是直接跳出while语句 本帖最后由 yvqiang 于 2014-8-12 17:02 编辑
浪子黑心 发表于 2014-8-12 12:58
你这个程序也有问题 它并不输出我输入的字符 是直接跳出while语句
你程序的这个i是不是要记录输入字符的个数哦?
我是照着你上面的打的,可能我用的devc有点不一样,但是不会跳出来呀http://bbs.fishc.com/data/attachment/album/201408/12/164031zccdjsze43cjg44g.jpg
如果I是记录输入的个数的话我想应该改成这样:
#include <stdio.h>
void main()
{
int i = 0;
char c;
while(1)
{
c = '\0';
while(c != 13 && c != 27)
{
c = getch();
printf("%c",c);
i++;
}
if(c == 27)
{
break;
}
}
printf("\n");
printf("the no. is %d\n",i);
printf("the end\n");
system("pause");
#include <stdio.h>
#include <conio.h>
void main()
{
int i=0;
char c;
while(1) /*设置训循环*/
{
c='\0'; //变量赋初值
while (c!=13&&c!=27)//键盘接受数字附直接按到回车后者Esc键
{
c=getche();
printf("%c\n",c);
}
if(c==27)
break; //判断若按Esc键可推出循环
i++;
printf("The No.is %d\n",i);
}
printf("The end");
}
不知道你要什么样的输出格式,不过你应该可以自己改了
页:
[1]