デバッグ用に今の状況を表示させたいのだけれど、 単に表示するだけだと流れていってしまうし、良く分からない。 という状況があった。
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();
}
復習