如何用 ESC来结束循环 C语言

来源:百度知道 编辑:UC知道 时间:2024/06/20 12:22:21
#include "stdio.h"
#include <string.h>
#define N 80
main()
{
void total(char str[]);
char str[N];
printf("Enter a string:\n");
gets(str);
total(str);
}
void total(char str[])
{
int i,j,count=1;
char ch;
for(j=0;str[j]!='0';j++)
{
ch=str[j];
if(str[j]=='')
continue;
for(i=j+1;str[i]!='0';i++)/*结尾输入0来结束循环*/
{
if(ch==str[i])
{
count++;
str[i]='';
}
}
printf("%c=%d\n",ch,count);
count=1;

}
}
程序功能:输入一个字符串,统计输出各个字符出现的个数.
这个程序中,我用0来结束for循环,我想用ESC的ASCII码值'\x1B'来代替0来结束循环,但是出错,很多乱码,这是怎么回事?请高手请教.

#include <conio.h>
#include <stdio.h>
void main( void )
{
while(1)
{
if (_kbhit() && _getch()==0x1b)
break;
printf("do something ...");
}
}

你可以弄个switch语句啊
接收的ASCII码值是\027的话就退出循环,这样就可以了啊。