2012-01-27 16 views
3

私はCプログラミングに新しいですし、私はこのように、例えば、カウントダウンが1行に場所を取ることを望む:nはその一部だけだろう書き換え情報

Time left: n 

更新された行。

私はコマンドラインプログラミングについて話しています。私はカウントダウンを行う方法を知っている、私はちょうど1行にそれを維持し、動的にその行を更新するのに役立つ必要があります。

+0

純粋なANSI Cでは、どのOSを使用しているのですか?出力の配置を制御できるいくつかのライブラリ/拡張機能が必要です(つまり、ncursesが必要なunix/linux) –

+0

@AdrianCornish: cursesを使用する必要があります。 –

+0

@GregHewgill興味深い解決策:-)はほとんどの実装でおそらく動作します。 –

答えて

6

\rを使用すると、カーソルを行の先頭に戻して行を上書きすることができます。だから、:デフォルトでは、その出力バッファがいっぱいになったときstdoutのみ自体をフラッシュし、または\nが出力されますので、

for (int i = 10; i > 0; i--) { 
    printf("\rCountdown: %d ", i); 
    fflush(stdout); 
    sleep(1); 
} 
printf(" done.\n"); 

fflush(stdout);が必要です。

関連する問題