如何在控制台中显示变化的数字?我有一个普通的C++命令行程序,使用cout
,但我想显示一个代表进度的百分数数字,计数器会从0一直增加到100不打印新行。该怎么做?(如果重要的话:我使用的是Windows 7)
当我需要时,我只需输出一个回车符,在C++中为\r
。
记得每次刷新输出,例如:
cout << "\r" << x << "% completed. " << flush;
为了解决类似于 Microsoft 风格的浮动进度条,结尾处有空格以清除上一行输出。
使用退格字符。
cout << "10%";
// ...
cout << "\b\b\b20%";
通常我会在进度信息后面加上回车符。这样,任何其他输出都会正常显示(只要该行有足够的字符来完全覆盖进度信息)。
cerr<<percentage<<"% \r";
顺便说一下,我更喜欢使用cerr而不是cout来输出这种状态/诊断信息,因为cout可以保留给实际内容。这样你就可以将正常程序输出重定向到文件中,仍然可以在控制台上查看进度。此外,使用cerr时,您不必使用“flush”。
commandline
标签是用来做什么的? - Felix Dombek