[英]How do I rewrite a line of text in a console project? c++
我正在处理一个 C++ 控制台项目,我想显示一个百分比而不每次都换行(这样窗口就不会被数千行堵塞)。
有没有办法删除打印的最后一行,或者说下次我输出一行时它应该替换当前行?
您可以使用 \\r(回车)将光标返回到行首:
这适用于 Windows 和 Linux。
From: 擦除当前打印的控制台行
您也可以使用一系列退格键。
string str="Hello!";
cout << str;
cout << string(str.length(),'\b');
cout << "Hello again!";
来自: http : //www.cplusplus.com/forum/unices/25744/
也许标记为重复? 我真的不知道如何。
我在Linux
测试的一个简单示例是:
std::cout << "Some text to display..." << "\t\r" << std::flush;
这里\\t
添加了一个表格来处理略有变化的字符串长度,而\\r
将光标发送回行首(如其他答案中所述)。 std::flush
来保证显示该行而不跳到下一行。
这是非常依赖于平台和终端的。 但是,您可能想先看看 ncurses: http : //linux.die.net/man/3/ncurses
对于 Windows: 如何在不使用 3rd Party 库的情况下覆盖 Windows 本机 C++ 控制台应用程序中控制台的相同部分?
对于 Linux: https : //unix.stackexchange.com/questions/43075/how-to-change-the-contents-of-a-line-on-the-terminal-as-opposed-to-writing-a-new
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.