在控制台中显示更改号码的最简单方法是什么?我在C ++中有一个使用cout
的普通命令行程序,但是我想显示一个代表进度的百分比数字,在没有打印新行的情况下计数到100。怎么做的? (如果重要:我在Windows 7上)
答案 0 :(得分:29)
当我需要时,我只是在C ++ \r
中输出回车字符。
请记住每次刷新输出,例如
cout << "\r" << x << "% completed. " << flush;
最后的空格,以便在类似Microsoft的波动进度的情况下清除该行的上一个输出。
答案 1 :(得分:11)
使用退格符。
cout << "10%";
// ...
cout << "\b\b\b20%";
答案 2 :(得分:5)
我通常会在进度信息后放回车。这样,任何其他输出将显示正常(只要它在行中有足够的字符来完全覆盖进度信息)。
cerr<<percentage<<"% \r";
顺便说一句,我更喜欢使用cerr而不是cout来获取这种状态/诊断信息,以便可以为真实内容保留cout。这样,您可以将正常程序输出重定向到文件,并仍然可以在控制台中查看进度。此外,使用cerr,您不必使用“flush”。