问题分析
你遇到的问题是在按下 Esc 键后输出 "The end" 时,缺少了一个 'T' 字母。这是因为在使用 getch() 函数获取键盘输入时,它会读取并返回键盘缓冲区中的字符,但不会显示在控制台上。这就导致了你在按下 Esc 键后,最后一个字符 'T' 并没有被显示出来。
解决方法
为了解决这个问题,你可以修改代码,将 printf("%c\n", c); 这行代码移动到 if(c==27) 的条件判断块内部,在按下 Esc 键后再显示字符 'T'。修改后的代码如下:#include <conio.h>#include <stdio.h>int main(){ int i = 0; char c; while (1) { c = '\0'; while (c != 13 && c != 27) { c = getch(); if (c == 27) break; printf("%c\n", c); } if (c == 27) break; i++; printf("The NO. is %d\n", i); } printf("The end\n"); return 0;}
通过将 printf("%c\n", c); 移动到 if(c==27) 的条件判断块内部,确保在按下 Esc 键后再显示字符 'T',从而解决了输出不完整的问题。祝你编程顺利! |