【发布时间】:2017-05-22 14:26:20
【问题描述】:
我正在尝试为使用类似以下循环的 C 项目制作一个简单的 16*16 终端显示:
for(i = 1; i <= 256; i++) {
printf("%c ", output[i-1]);
if(i % 16 == 0) {
printf("\n");
}
}
要显示这样的东西(但要大一倍):
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
问题是,这显然只是在每次刷新显示时打印一个新的显示below,而当我需要over打印它时。回车\r 只覆盖上一行,而我需要覆盖前 16 行。
有没有办法在 C 中做到这一点?我正在使用 Windows,所以我不知道 ncurses 是否是一个选项。
【问题讨论】:
-
您可能希望使用实际的终端,而不仅仅是不透明的标准输出流。终端控制是特定于平台的,因此请查阅您的供应商文档(我想是 Windows)。另请参阅stackoverflow.com/questions/138153/…。
-
感谢您的建议,我找到了解决方案。
-
如果 Windows 控制台支持 ANSI 转义码,您可以查看 this question 指向的源代码 - 它会将光标定位在屏幕顶部而不先清除它。