Windows および Linux コンソールの画面の上部をポイントにリセットします

StackOverflow https://stackoverflow.com/questions/56324

  •  09-06-2019
  •  | 
  •  

質問

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 では使用できません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top