2017-01-08 5 views
1

私はこのループのようなものを使用してCプロジェクトのためのシンプルな16 * 16の端末ディスプレイを作るしようとしている:上書き複数の端末回線

for(i = 1; i <= 256; i++) { 
    printf("%c ", output[i-1]); 
    if(i % 16 == 0) { 
     printf("\n"); 
    } 
} 

このような何か(ただし、2倍の大き)を表示するには:

* * * * * * * * 
* * * * * * * * 
* * * * * * * * 
* * * * * * * * 
* * * * * * * * 
* * * * * * * * 
* * * * * * * * 
* * * * * * * * 

問題は、私が代わりにそれを上に印刷する必要があるときに、これは明らかにちょうど、新しいディスプレイ前の表示が更新されるたびに、以下のを出力します。キャリッジリターン\rは、前の行に書き込むだけですが、前の16行に書き戻す必要があります。

Cでこれを行う方法はありますか?私はWindowsを使用しているので、ncursesがオプションかどうかわかりません。

+0

です。不透明な標準出力ストリームだけでなく、実際の*端末*で作業することをお勧めします。ターミナルコントロールはプラットフォーム固有のものなので、ベンダーのドキュメントを参照してください(Windowsの場合)。 https://stackoverflow.com/questions/138153/is-ncurses-available-for-windowsも参照してください。 –

+0

アドバイスをいただき、ありがとうございました。 –

+1

WindowsコンソールでANSIエスケープコードがサポートされている場合は、[この質問](http://stackoverflow.com/q/41485511/2564301)で指し示されているソースコードを見ることができます。カーソルは画面の上部に配置されますまずそれをクリアすることなく。 – usr2564301

答えて

-2

私はそれを得ました:窓でsystem("cls")は端末をクリアします。たった16行ではなくすべてをクリアしますが、それは機能します。

0

ターミナルに対応できるライブラリを使用する必要があります。そのようなライブラリの1つはncurses

関連する問題