Windows および Linux コンソールの画面の上部をポイントにリセットします
質問
C で書かれた Linux および Windows 上で実行され、コンソールに出力を表示する小さなルーチンがあります。私は呪いなどの形でリンクしているわけではありません。
現在、私は使用して画面をクリアします
#ifdef __WIN32
system( "cls" );
#else
system( "clear" );
#endif
次に、ステータスを更新するための printf ステートメントが多数あります。私が望むのは、スクリーンポインタを 0,0 にリセットするだけで、printfs をオーバーレイできるようになります。特に 2 つの異なる OS 用にコーディングしているため、これ以上の拡張機能でコンパイルすることは避けたいと考えています。
解決 2
Windows 固有の方法を見つけたようです SetConsoleCursorPosition
Linux の場合は Ansi エスケープ シーケンス \033[0;0H - それをコンソールに出力するだけです。
他のヒント
Unix のようなプラットフォームの場合、これを行う通常の方法は、 呪い 図書館。
はい、UNIX プラットフォームの場合は、curses (最近では ncurses) が最適です。Windows で動作するバージョンもあるので、両方のシステムで同じ方法で実行できます。
Windows の場合 - ANSI エスケープ文字を使用できます。
http://www.lexipixel.com/news/star_dot_star/using_ansi_escape_sequences.htm
http://www.robvanderwoude.com/ansi.html
printf "\x[0;0H"
以前は、これを行う前に Ansi.sys をロードする必要がありましたが、試してみる価値はあります。
ANSI サポートを追加する手順http://www.windowsnetworking.com/kbase/WindowsTips/WindowsXP/UserTips/CommandPrompt/CommandInterpreterAnsiSupport.html注記:Ansi.sys は command.com でのみ動作します。cmd.exe では使用できません