我想格式化程序的输出格式,以打印一个数字(索引),然后打印一些文本,以及随着程序的进行数字递增。我正在使用CLion,但我想知道是否有任何解决方案是“通用的”。
我非常想刷新输出和系统CLS:
cout << i << ". has been checked" << flush;
cout << system ("CLS");
在一些不同的配置中,但我感觉这不是那样。
我想格式化程序的输出格式,以打印一个数字(索引),然后打印一些文本,以及随着程序的进行数字递增。我正在使用CLion,但我想知道是否有任何解决方案是“通用的”。
我非常想刷新输出和系统CLS:
cout << i << ". has been checked" << flush;
cout << system ("CLS");
在一些不同的配置中,但我感觉这不是那样。
形式上,没有答案,但是相当多的系统支持\b
用于退格。
尝试此操作是一个很好的编程练习-请记住,您需要对每个已打印的数字退格。因此,当您从99增至100时,您需要\b\b
。而且,如果您以不同的步长递增(例如,“下载的字节数”),则需要跟踪屏幕上已经有多少位数字。
假定输出的垂直位置从不改变,请为此使用回车符(\r
)。
std::cout << "\r" << i << ". has been checked";
\r
仅将光标的位置设置为行的开头。
如果这不能满足您的要求,或者在写出i
之后输出文本,那么您需要一个针对特定平台的解决方案;例如,move/wmove在Linux上带有ncurses,在Windows上带有SetConsoleCursorPosition
。