在C ++控制台应用程序中显示动态值

时间:2015-02-20 18:07:44

标签: c++ multithreading

in喜欢在控制台应用程序上显示动态整数的值而不向下滚动应用程序背景。 整数通过ref传递给线程。 线程将改变整数值。

目前我在主方法/线程

中这样做
int data;
thread t1((ProCount()),ref(data));
while(true){
cout<<"data :"<<data<<endl;
system("CLS");
}

但是对于CLS命令会占用很多处理能力还有其他不错的方法吗?

2 个答案:

答案 0 :(得分:2)

您可以考虑使用ncurses:

http://hughm.cs.ukzn.ac.za/~murrellh/os/notes/ncurses.html

适用于所有cmd-line环境(Windows cmd提示,Linux,MacOS等),它提供标准的C / C ++接口。

附录:

如果您只想重新定位光标以重写值,您还可以使用Windows API SetConsoleCursorPosition()。例如:

#include <windows.h> 

void gotoxy(int x, int y)
{
  COORD coord;
  coord.X = x;
  coord.Y = y;
  SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

答案 1 :(得分:0)

尝试多次打印"\b"并添加睡眠。