如何使用Escape键在C中结束循环

我只想在C中结束do while循环,如下所示:

#include  #include  main() { char exit; do{ printf("PLEASE INSERT OPTION:"); exit = getchar(); }while(exit != '\027'); }//main 

我认为这有点像这样。

27是Escape的十进制ASCII值,但您使用的是八进制字符代码。 你应该说27 ,或'\033' (或'\x1b'代表更常见的hex)。 这可能是问题所在,假设您的终端允许通过Escape角色。 有时它们被用于终端级魔术,因此被终端“吃掉”。

另外,请注意getchar() ,尽管名称,但返回int不是 char 。 它还可以返回非字符值EOF (如果按Ctrl + D (在Unix中)),因此需要更大的类型。

我刚发现问题,看看这段代码:

 #include  #include  main() { int exit; do{ printf("PLEASE INSERT OPTION:"); exit = getch(); }while(exit != 27); }//main 

那很有效。 谢谢您的帮助。 @MichaelWalz @DrewMcGowen @ 2501 @unwind