c - 如何在c中完全覆盖输出
问题描述
所以我正在做这个项目游戏,我想把它放在一个边框/盒子里。然后,我想在该边框内不断地打印文本:添加文本、删除它、更改它等等。我已经看得很远了,无论如何都找不到在框内与实际框分开打印。
我当前的实现是清除屏幕,然后使用以下新文本重新打印整个框:
printf("\e[1;1H\e[2J");
问题是我得到了这种非常令人讨厌的闪烁效果,因为每次清除屏幕都会导致屏幕的该部分在一段时间内变黑。
所以我正在寻找一些解决方案。
如何打印与其中的打印语句分开的边框。我目前正在这样实现它:
printf("| | Hello There ||\n");
,然后一直重复以制作边框。
- 如何完全覆盖已经输出的文本,以使这种闪烁效果消失。所以想象 \r 删除一行,我想要这样的东西,删除整个文本并用一组新文本替换它
- 如何更改用户在控制台中输入的位置,以便您可以在框中输入
这些基本上是我能想到的唯一解决方案,如果你还有其他的我很想听听
我还有一个关于 c 的一般性问题。
conio.h、graphics.h、windows.h 和其他一些头文件不适用于我的编译器。我使用 ubuntu,他们总是提出一些错误,说我不能使用它们。我感谢有人向我解释这一点。
请让我知道您的想法,如果您需要更多信息,我一定会提供
-瑞安
解决方案
conio.h
并且windows.h
不是标准的 Linux 库,因此除非您安装额外的软件,否则它们不会在 Linux 上编译。一种解决方案是使用为管理屏幕而设计的库,例如ncurses。
推荐阅读
- go - Go - 锁定互斥锁的非阻塞方式
- javascript - 使用 lit-html 渲染的嵌套 HTMLElement 会覆盖父模板
- c++ - 查找共享库的位置以将其与 MASTIK 映射
- java - 整数的大写对于缓冲区写入是否重要?
- android - CollapsingToolbarLayout 动画错误行为
- javascript - React useContext 和 useReducer - 需要应用程序中的全局状态,对使用一个 vs 多个减速器感到困惑
- python - 查找数组的子列表
- flutter - 如何忽略 Flutter 中 CustomScrollView 的 Sliver 上的点击事件?
- javascript - 如何从 React 中从另一个数组对象创建的数组中过滤?
- android - 在电话列表中安装所有语言