16

わかりました、私はそのような単純なことを尋ねるのは少し恥ずかしいですが、それでも.

コマンド ライン ユーティリティ アプリケーションがあり、進行状況をユーザーに表示する必要があります。

次のように、進行状況を cout に書き込むことができます。

std::cout << "10%\n";
...
std::cout << "20%\n";
...
std::cout << "30%\n";

...しかし、結果として、ユーザーは次のように表示されます。

some line printed before
10%
20%
30%
...

...しかし、私が本当に必要としているのは、最初に次のように、パーセンテージが更新されたことです:

some line printed before
10%
...

...そして更新後:

some line printed before
20%
...

...そして2回目の更新後:

some line printed before
30%
...

どうすればそれを達成できますか?

4

2 に答える 2

24

を使用する代わりに、次を'\n'使用します'\r'

std::cout << "\r10%" << std::flush;

完了したら、改行 ( '\n') を出力します。

std::flushストリームの内容が実際に出力されるように使用することが重要です。

于 2012-05-21T08:08:31.313 に答える
6

キャリッジ リターンを使用します。

std::cout << "\r10%";
std::cout << "\r20%";
...

行の先頭に移動します。

于 2012-05-21T08:07:19.427 に答える