デバッグ用に今の状況を表示させたいのだけれど、 単に表示するだけだと流れていってしまうし、良く分からない。 という状況があった。
X-Windowに表示させるのも良いのだけれど、マシンパワーを無駄に使ってしまう。 それよりは、ターミナルに表示させた方が無駄が少なかろうと、 CRT操作ライブラリはないかと探してみたところ、 linuxではncursesが良いだろうという結論になった。 触ってみた感じでは、X-Windowとプログラム法は同じ感じでした。
他のページでも繰り返していますが、あくまで備忘録です。 全面的に信用しないでください。
「initscr()」で画面操作が始まり、「endwin()」で終わる。 「mvprintw(x, y, format[,arg] )」で変更内容をきめ、 「refresh()」で変更を画面に反映させる。 mvprintwの書式はprintfと同じ。 その例が下のようになる。
例:
int main(void) { int i; initscr(); for(i=0; i<5 ; i++){ mvprintw(20-i%20, 5, "d", i); sleep(1); refresh(); } endwin(); return 0; }
復習
keypad(stdscr, TRUE);という指定をしておけば getstr()という関数で文字列を受け取ることができる。 使い方はgets()とほとんど同じ。
例:
int main(void) { char str[10]; initscr(); keypad(stdscr, TRUE); while(getstr(str)) ; mvprintf(10, 5, "%s", str); refresh(); sleep(1); endwin(); }
復習