C言語入門、端末(ターミナル)画面のリセット。




 

C言語を勉強し始めた時に

構造体とポインタの復習として何か作ろうと思い

定番なものとして、名前などの情報の登録、編集、削除が行えるプログラム

(つまりアドレス帳みたいなもの)を一から作成してみました。

 

単純に端末上(コマンドプロンプトやターミナル)で表示させるといったものだけど、

文字表示といえば、実行するたび画面はリセットされずに上から順に文字が次々と表示されるが

なんだか格好が悪い。

 

できれば表示は毎回リセットしたい。

 

そうして何かないかと色々調べていて

WEB上で見かけた”エスケープシーケンス”の事をメモしておこうかと思う。

 

ESC : 8進数で033 から始まる文字列との事。

printf(“\033[2J”);   //画面クリア
printf(“\033[0K”);   //カーソル位置からその行の右端までをクリア
printf(“\033[1K”);  //カーソル位置からその行の左端までをクリア
printf(“\033[2K”);   //カーソル位置の行をクリア

printf(“\033[%d;%dH” ,10,20);  //カーソル位置を高さ10行目と横20行目に移動
printf(“\033[%dC” ,10);     //カーソルを10行右に移動
printf(“\033[%dD” ,10);     //カーソルを10行左に移動
printf(“\033[%dB” ,10);     //カーソルを10行下に移動
printf(“\033[%dA” ,10);     //カーソルを10行上に移動

printf(“\033[30m”);  //黒の文字に変更
printf(“\033[31m”);  //赤の文字に変更
printf(“\033[32m”);  //緑の文字に変更
printf(“\033[33m”);  //黄色の文字に変更
printf(“\033[34m”);  //青の文字に変更
printf(“\033[37m”);  //白の文字に変更
printf(“\033[35m”);  //マゼンダの文字に変更
printf(“\033[36m”);  //シアンの文字に変更
printf(“\033[39m”);  //文字の色を通常の色に戻す

printf(“\033[40m”);  //文字の背景を黒色に変更
printf(“\033[41m”);  //文字の背景を赤色に変更
printf(“\033[42m”);  //文字の背景を緑色に変更
rintf(“\033[49m”);  //文字の背景を通常に戻す

他の背景色は上の文字の色の番号を参考。

注)
画面上の高さ10行目、横20行目で数字をカウントアップするプログラム
Windows のコマンドプロンプトでは動作しない
Windowsではエスケープシーケンスを有効にしないと動作しない
CygwinおよびLinux上では動作するとの事。

 



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です