913619957 发表于 2021-1-16 21:58:19

为什么运行按ESC不退出程序呢

#include <stdio.h>

void main()
{
        char a;
        printf("输入字符\n");
        while(1)
        {
                a=getchar();
                if(a==27)
                        break;
                else if (a==13)
                        continue;
                else
                        putch(a);
        }
}



求教各位大神{:5_94:}

风过无痕1989 发表于 2021-1-16 22:12:39

while(1) 条件永远成立,这是个死循环

jackz007 发表于 2021-1-16 22:48:56

       getchar() 似乎无法取到 <Escape> 键。
       可以用 conio 库,楼主试试这个代码:
#include <stdio.h>
#include <conio.h>

int main(void)
{
      char a                        ;
      while(1)
      {
                printf("输入字符 : ")   ;
                a = getch()             ;
                if(a == 27) break       ;
                else printf("%c\n" , a) ;
      }
}

913619957 发表于 2021-1-17 11:42:13

jackz007 发表于 2021-1-16 22:48
getchar() 似乎无法取到键。
       可以用 conio 库,楼主试试这个代码:

#include <stdio.h>

void main()
{
        int i=0;
        char c;
        while(1)
        {
                if(c!=13&&c!=27)
                {
                        c=getch();
                        printf("%c\n",c);
                }
                if(c==27)
                        break;
                i++;
                printf("the no.is %d\n",i);
        }
        printf("the end");
}

可是我这个代码用getchar()又能取到esc了
页: [1]
查看完整版本: 为什么运行按ESC不退出程序呢