如何在控制台项目中重写一行文本?C++

use*_*758 2 c++

我正在开发一个c ++控制台项目,我想显示一个百分比,而不是每次都创建一个新行(这样窗口就不会被数千行阻塞).

有没有办法删除打印的最后一行或者说下次我输出一行它应该替换当前行?

mar*_*rsh 7

您可以使用\ r(回车符)将光标返回到行的开头:

这适用于Windows和Linux.

发件人:删除当前打印的控制台线

您也可以使用一系列退格.

string str="Hello!";
cout << str;
cout << string(str.length(),'\b');
cout << "Hello again!";
Run Code Online (Sandbox Code Playgroud)

来自:http://www.cplusplus.com/forum/unices/25744/

也许标记为重复?我真的不确定怎么样.


LoW*_*LoW 6

我测试的一个简单的例子Linux是:

std::cout << "Some text to display..." << "\t\r" << std::flush;
Run Code Online (Sandbox Code Playgroud)

这里\t添加一个表格来处理稍微变化的字符串长度,并将\r光标发送回行的开头(如其他答案中提到的)。 std::flush需要保证显示该行而不跳转到下一行。