tac*_*o24 1 c linux windows console-application
我想覆盖ac控制台程序中的当前行,以实现像linux shell命令"top"中的输出.如果可能,该方法应该在Windows和Linux下工作.
while (i < 100) {
i++;
sprintf(cTmp, "%3d", i);
puts(cTmp);
if ((character = mygetch()) == 'q') {
break;
}
}
Run Code Online (Sandbox Code Playgroud)
我想覆盖每次迭代中的前一个数字,如果可能的话,查看用户是否输入了一个字符而没有暂停循环.如果用户按下'q'键,循环应立即停止.
你不需要ncurses这就是你正在做的事情.您需要做的就是将光标移动到行的开头并覆盖其中的内容,并确保刷新输出缓冲区,因为stdout如果它连接到终端,通常是行缓冲的.这是一个例子:
#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[])
{
int i;
for (i = 0; ; ++i) {
printf("\rIteration %d", i);
fflush(stdout);
usleep(250000);
}
}
Run Code Online (Sandbox Code Playgroud)
回车符,'\r'将光标移动到当前行的开头.如果您想做更多比这更奇特的事情,请使用该ncurses库.
我不知道这是否适用于Windows,与大多数其他操作系统相比,Windows控制台有些奇怪.
| 归档时间: |
|
| 查看次数: |
1914 次 |
| 最近记录: |