首页 > 解决方案 > 如何在c中完全覆盖输出

问题描述

所以我正在做这个项目游戏,我想把它放在一个边框/盒子里。然后,我想在该边框内不断地打印文本:添加文本、删除它、更改它等等。我已经看得很远了,无论如何都找不到在框内与实际框分开打印。

我当前的实现是清除屏幕,然后使用以下新文本重新打印整个框:

 printf("\e[1;1H\e[2J");

问题是我得到了这种非常令人讨厌的闪烁效果,因为每次清除屏幕都会导致屏幕的该部分在一段时间内变黑。

所以我正在寻找一些解决方案。

  1. 如何打印与其中的打印语句分开的边框。我目前正在这样实现它:

          printf("| |                        Hello There                     ||\n");
    

    ,然后一直重复以制作边框。

  2. 如何完全覆盖已经输出的文本,以使这种闪烁效果消失。所以想象 \r 删除一行,我想要这样的东西,删除整个文本并用一组新文本替换它
  3. 如何更改用户在控制台中输入的位置,以便您可以在框中输入

这些基本上是我能想到的唯一解决方案,如果你还有其他的我很想听听

我还有一个关于 c 的一般性问题。

conio.h、graphics.h、windows.h 和其他一些头文件不适用于我的编译器。我使用 ubuntu,他们总是提出一些错误,说我不能使用它们。我感谢有人向我解释这一点。

请让我知道您的想法,如果您需要更多信息,我一定会提供

-瑞安

标签: cprintfoutput

解决方案


conio.h并且windows.h不是标准的 Linux 库,因此除非您安装额外的软件,否则它们不会在 Linux 上编译。一种解决方案是使用为管理屏幕而设计的库,例如ncurses


推荐阅读