所以我熟悉printf之类的东西,但是我需要在屏幕上更新一行,而不需要多行滚动。我发现库在windows(conio.h)中执行此操作但在unix中没有。我需要能够在cygwin中运行它,但欢迎任何unix示例。
我找到了以下stackoverflow article ,但我不认为这完全符合我的需求。
感谢您的帮助
答案 0 :(得分:0)
你想要Ncurses。它是一个允许您编辑屏幕上任何字符的库。
答案 1 :(得分:0)
这取决于您是否尝试使用文本模式全屏应用程序(在这种情况下,ncurses可能是您想要的)或者只是想要就地更新单行(例如,您想要更新一个“X%完成”指标从1到100,所有输出出现在同一行,因此当打印X%完成时,它会打印“超过”之前的X-1%完成指示符)。在后一种情况下,您可以编写相对便携的代码,并且相当简单。例如,像这样:
#include <windows.h> // Used only for "Sleep" in our simulated work load
#include <stdio.h>
void do_work() {
// Simulated work load. Just waste some time:
Sleep(100);
}
int main() {
for (int i=0; i<100; i++) {
char buffer[82];
sprintf(buffer, "%d percent done", i+1);
printf("\r%-79s", buffer);
do_work();
}
return 0;
}