如何使用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