C++ 如何在不输出新行的情况下更新终端中的输出字段?

C++ 如何在不输出新行的情况下更新终端中的输出字段?,c++,shell,terminal,C++,Shell,Terminal,可能重复: 我有C++代码,执行一些模拟。 我想显示我的模拟的百分比,但我不想每一步都输出一行,比如 %一, %二, %三, 有没有一种方法,在C++或shell脚本中显示进程而不创建新行?< /P> 谢谢 编辑1 有人知道如何在不刷新整个页面的情况下更新我个人网页上的号码吗 谢谢 编辑2 double N=0; forAll(内部ID,i){ N++; 双百分比=100*N/internalIDs_uu.size(); //Info用于此操作的技巧是返回到当前行的第一个位置,而不是前进到下

可能重复:

我有C++代码,执行一些模拟。 我想显示我的模拟的百分比,但我不想每一步都输出一行,比如

%一,

%二,

%三,

有没有一种方法,在C++或shell脚本中显示进程而不创建新行?< /P> 谢谢

编辑1 有人知道如何在不刷新整个页面的情况下更新我个人网页上的号码吗

谢谢

编辑2
double N=0;
forAll(内部ID,i){
N++;
双百分比=100*N/internalIDs_uu.size();

//Info用于此操作的技巧是返回到当前行的第一个位置,而不是前进到下一行

这是通过将
\r
字符(回车)写入终端/stdout来完成的

cout << "\r%1";
cout << "\r%2";
cout << "\r%3";
因为:

somelongmessage
^^^^^
short
但你可以:

cout << "\rsomelongmessage";
cout << "\rshort          ";

嗯,所以我需要<代码> FLUHU(StdUT);< /Cord> >是的。Flushing是STD::Endl的一部分。因为您不使用STD::Endl,所以需要刷新。在C++中,可以用STD::CUT.FHUSEH()来刷新。,或使用std::cout抱歉再次打扰您,我看到终端光标一直以非常快的方式在百分比上循环闪烁,我应该怎么做才能消除它..正如我所说的,较少的更新有帮助。但是很难消除光标。这是一个全新的主题。@DJSquared没有简单的解决方案。您不能终端可以以不同的模式执行控制台UI等操作,但它更复杂。一个流行的库是
ncurses
,请参阅
shortongmessage
somelongmessage
^^^^^
short
cout << "\rsomelongmessage";
cout << "\rshort          ";
short