我正在做一个c++控制台项目,我想显示一个百分比,而不是每次都创建新的行(这样窗口就不会被成千上万的行阻塞)。
有没有一种方法可以删除打印的最后一行,或者说下一次我输出一行时应该替换当前行?
发布于 2015-02-06 01:25:59
您可以使用\r (回车)将光标返回到行首:
这可以在windows和Linux上运行。
来自:Erase the current printed console line
你也可以选择使用一系列的退格键。
string str="Hello!";
cout << str;
cout << string(str.length(),'\b');
cout << "Hello again!";来自:http://www.cplusplus.com/forum/unices/25744/
也许标记为副本?我真的不知道该怎么做。
发布于 2019-09-22 17:12:58
我在Linux上测试的一个简单示例是:
std::cout << "Some text to display..." << "\t\r" << std::flush;在这里,\t添加了一个表格来处理稍有不同的字符串长度,并且\r将光标返回到行的开头(如其他答案中所提到的)。需要std::flush来保证显示该行时不会跳到下一行。
发布于 2015-02-06 01:34:50
这是非常依赖于平台和终端的。但是,您可能想先看看ncurses:http://linux.die.net/man/3/ncurses
https://stackoverflow.com/questions/28350254
复制相似问题