curses ライブラリ

ゲームなど、対話的なプログラムを作る場合、入力操作で即座にキーに反応 すると楽しいものが作れる。ここでは、対話的なキー入力と、自由度の高い画面 出力を行なえる curses ライブラリの使い方を紹介する。

cursesの特徴

C言語の標準関数であるfgetsなどでは、一行をまとめて入力し、 最後にリターンキーを押さないとプログラムにデータを送り込むことができない。 これは、データ処理を行なう場合には都合が良いが、ゲームなどのプログラムを 作成する場合には、キーを1文字タイプしたら即座に入力したキーを読み込める と即時性のあるものを作れる。

cursersライブラリには、以下のような事を可能にする関数群が用意されている。

cursesの初期化

cursesライブラリには、いくつもの関数が用意されている。これらを使うに は、プログラムの構成を以下のようにする。

#include <curses.h>

int main()
{
  initscr();                    /* curses初期化、画面も消去*/
  noecho();                     /* 入力文字を画面に出さない */
  cbreak();                     /* リターンキーなしでも入力可能に */
}

また、このプログラムをコンパイルするときには、cursesライブラリを リンクするように、コンパイルのコマンドラインの最後に -lcurses を付加する(gccの-lオプションはリンクするライブラリ を指定するためのもの)。

cursesライブラリにある関数

便利と思われる関数を抜粋した。

利用できる変数

以下のグローバル変数が自動的に定義される。

move()関数で座標できる範囲はX座標は 0からCOLS-1まで、 Y座標は 0からLINES-1までとなる。


目次