如何完全覆盖c中的输出

问题描述 投票:1回答:2

因此,我正在开发这种辅助项目游戏,我想将其放在边框/盒子内。然后,我想在边框内不断打印文本:添加文本,删除文本,更改文本等。我​​看得很远,无论如何都找不到要在框内打印的框。

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

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

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

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

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

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

    ,然后一直重复直到形成边框。

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

基本上,这些是我能想到的唯一解决方案,如果您有任何其他我想听到的解决方案,则>]

我也对c有一个一般性的问题。

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

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

-Ryan

因此,我正在从事这种侧面项目游戏,我想将其放在边框/盒子内。然后,我想在边框内不断打印文本:添加文本,删除文本,更改文本等。...

c printf output
2个回答
3
投票

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


0
投票

您可以使用类似这样的循环和ASCII字符来做到这一点:

© www.soinside.com 2019 - 2024. All rights reserved.