2011-02-13 160 views
13

在控制檯中顯示更改數字的最簡單方法是什麼?我在C++中有一個正常的命令行程序,它使用cout,但我想顯示一個百分比數字,表示在沒有打印新行的情況下計數達到100的進度。這是如何完成的? (如果很重要:我在Windows 7上) 感謝您的回答!C++在控制檯上更改輸出

+0

那麼你的意思是說打印和擦除數字? – rda3mon 2011-02-13 05:44:09

+1

@Ringo:是的。您也可以將其擴展到一般問題:我將如何更改之前打印到控制檯的任何內容?我也看到並感到有趣:改變輸出文本的顏色。 – 2011-02-13 05:45:20

回答

29

當我’已經需要我有隻輸出一個回車字符,在C++ \r

請記住每次例如刷新輸出。

cout << "\r" << x << "% completed.  " << flush; 

空間在結束時清除的微軟般波動的進展情況就行了先前的輸出。

enter image description here

11

使用退格字符。

cout << "10%"; 
// ... 
cout << "\b\b\b20%"; 
5

我通常放置進度信息後回車。這樣,任何其他輸出都將顯示爲正常(只要其中有足夠的字符即可完全覆蓋進度信息)。

cerr<<percentage<<"% \r"; 

順便說一句,我更喜歡使用CERR而不是COUT對於這種狀態/診斷信息,以便COUT可預留真正的內容。通過這種方式,您可以將正常的程序輸出重定向到一個文件,並可以在控制檯中看到進度。另外,用cerr,你不必使用「flush」。