C++输出的到位计数器

问题描述 投票:-2回答:2

我想将我的程序输出格式化,打印一个数字(索引),然后是一些文本,随着程序的进行,数字也会发生变化。我使用的是CLion,但我很想知道是否有任何解决方案是 "通用的"。

我曾在几个不同的配置中尝试过刷新输出和系统 CLS:

cout << i << ".  has been checked" << flush;
cout << system ("CLS");

但我感觉这不是办法。

c++ output
2个回答
1
投票

假设输出的垂直位置永远不会改变,使用回车字符(\r)为此。

std::cout << "\r" << i << ".  has been checked";

\r 只是将光标的位置设置为该行的开头。

如果这样做没有达到你想要的效果,或者你在写完文字后输出的是 i,那么你需要一个更加平台化的解决方案。Movewmove诅咒 在Linux和 SetConsoleCursorPosition 比如说在Windows上。


1
投票

形式上,没有答案,但不少系统支持 \b 为反空间。

这是一个很好的编程练习,可以尝试一下--记住,你需要对打印的每一个数字进行退格。所以,当你从99到100时,你需要用 \b\b. 如果你以不同的步数递增(例如 "下载的字节数"),你需要跟踪屏幕上已经有多少个数字。

© www.soinside.com 2019 - 2024. All rights reserved.