我想将我的程序输出格式化,打印一个数字(索引),然后是一些文本,随着程序的进行,数字也会发生变化。我使用的是CLion,但我很想知道是否有任何解决方案是 "通用的"。
我曾在几个不同的配置中尝试过刷新输出和系统 CLS:
cout << i << ". has been checked" << flush;
cout << system ("CLS");
但我感觉这不是办法。
假设输出的垂直位置永远不会改变,使用回车字符(\r
)为此。
std::cout << "\r" << i << ". has been checked";
的 \r
只是将光标的位置设置为该行的开头。
如果这样做没有达到你想要的效果,或者你在写完文字后输出的是 i
,那么你需要一个更加平台化的解决方案。Movewmove 与 诅咒 在Linux和 SetConsoleCursorPosition
比如说在Windows上。
形式上,没有答案,但不少系统支持 \b
为反空间。
这是一个很好的编程练习,可以尝试一下--记住,你需要对打印的每一个数字进行退格。所以,当你从99到100时,你需要用 \b\b
. 如果你以不同的步数递增(例如 "下载的字节数"),你需要跟踪屏幕上已经有多少个数字。