鱼C论坛

 找回密码
 立即注册
查看: 2540|回复: 4

[已解决]printf输出不完整

[复制链接]
发表于 2023-11-13 16:18:26 | 显示全部楼层    本楼为最佳答案   
问题分析

你遇到的问题是在按下 Esc 键后输出 "The end" 时,缺少了一个 'T' 字母。这是因为在使用 getch() 函数获取键盘输入时,它会读取并返回键盘缓冲区中的字符,但不会显示在控制台上。这就导致了你在按下 Esc 键后,最后一个字符 'T' 并没有被显示出来。

解决方法

为了解决这个问题,你可以修改代码,将 printf("%c\n", c); 这行代码移动到 if(c==27) 的条件判断块内部,在按下 Esc 键后再显示字符 'T'。修改后的代码如下:
  1. #include <conio.h>
  2. #include <stdio.h>
  3. int main()
  4. {
  5.     int i = 0;
  6.     char c;
  7.     while (1)
  8.     {
  9.         c = '\0';
  10.         while (c != 13 && c != 27)
  11.         {
  12.             c = getch();
  13.             if (c == 27)
  14.                 break;
  15.             printf("%c\n", c);
  16.         }
  17.         if (c == 27)
  18.             break;
  19.         i++;
  20.         printf("The NO. is %d\n", i);
  21.     }
  22.     printf("The end\n");
  23.     return 0;
  24. }
复制代码

通过将 printf("%c\n", c); 移动到 if(c==27) 的条件判断块内部,确保在按下 Esc 键后再显示字符 'T',从而解决了输出不完整的问题。祝你编程顺利!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-22 09:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表