问题分析
你遇到的问题是在按下 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',从而解决了输出不完整的问题。祝你编程顺利!