2010-12-08 100 views
5

是否可以更改用「cout」打印的文本?我想讓它顯示當前的百分比,而不必爲每個百分比設置一個新行。這可能嗎?C++從「cout」更改輸出

+0

cout不應該是控制檯的摘要,儘管大多數終端都會很樂意正確地解釋回車符。 – lijie 2010-12-08 14:41:07

+0

什麼是控制檯呢? – nebkat 2010-12-08 15:05:55

回答

11

這個工作對我來說:

std::cout << "1111"; 
std::cout << "\r"; 
std::cout << "2222"; 

\r是一個回車符號。將「光標」放回到行首。您可以使用\b字符。這是退格。打印時,它會返回一個字符。

1

一般來說這是不可能的。 (想象一下,cout的輸出是直接送到打印機的,你如何指示它將最後一行「取消打印」?)cout是一個輸出流,它不會假定輸出發送到哪個媒體,或者關於該媒體的能力。具體的技巧可以在某些情況下達到你想要的效果,但在其他情況下會失敗。如果你想要比直接輸出純文本更動態的東西,可能cout不是正確的工具。

0

你絕對不會從cout得到的一件事是終端線的長度。由於這可以改變,你可能會使用太長的行,(使用'\ r')每次更新都會導致打印新行。如果你想使用特定的平臺,那麼使用特定於平臺的功能來獲取終端大小(請注意,根本不可能連接到任何終端,例如重定向到文件)。