ソースを見よう Part2

 字を出力させるには、printf 関数の変わりに Printf 関数を使えばいいのですが、では、文字を入力させるには???
 C言語では、gets, getch といったget系関数や、scanf 関数があります。 でも残念ながら、大文字にしたGetch や、Scanf という関数は用意して無いんですねぇ、残念ながら(すまん)。 でも皆さんの中には、
「手元のC言語のプログラムをWindowsアプリに移植したいけど、 さっき Printfで表示が出来るようになったので、残された問題はどうやって文字を入力させるかだけなんだが。」 とお嘆きの声を上げている方もいることでしょう。そうなんです。 文字の入力と出力さえできれば、結構簡単なC言語のプログラムならwindowアプリケーションに 移植できてしまえるのです。(グラフィック系、サウンド系 関数が含まれていれば別だけど。)

 の文字入力の問題を(やや)解決できるのが、 3つの関数(Inputtext, Inputint, Inputdouble)です。文字から機能が大体想像できるでしょうか。 Inputint 関数は、func3 関数の中で、Inputtext 関数は、func4 関数の中で、 それぞれ呼び出されています。
以下は、この3つの関数の書式と使い方です。

Inputtext 関数(文字を入力するダイアログを出し、入力された文字列を得る)
引数1 char * 入力された文字を受け取る配列
引数2 const char * プロンプト文字の配列
引数3 const char * デフォルトで表示されている文字の配列
使用例

    char gotstr[200];

    Inputtext(gotstr, "文字を入力", "");

    // 入力された文字列中に"sdf"があったら、メッセージで指摘
    if( strstr(gotstr, "sdf") != NULL )
        Printf(MESSAGE, "無茶苦茶に入力したね (^^;");

Inputint 関数(文字を入力するダイアログを出し、入力された整数値を得る)
引数1 const char * プロンプト文字の配列
引数2 const char * デフォルトで表示されている文字の配列
戻り値 int 入力された整数値、キャンセル時:0
使用例

    int gotint;

    gotint = Inputint("数字を入力", "123");

    // 整数がデフォルトの値のままだったら、メッセージで指摘
    if( gotint == 123 )
        Printf(MESSAGE, "数字変えようよ (^^;");

Inputdouble 関数(文字を入力するダイアログを出し、入力された数値を得る)
引数1 const char * プロンプト文字の配列
引数2 const char * デフォルトで表示されている文字の配列
戻り値 double 入力された数値、キャンセル時:0
使用例

   Inputintとほぼ同じなので省略

これで結構多くのことができるのではないでしょうか。

(余談:ふう〜。結構がんばったな、俺。「はじめに」から「ソースを見よう Part2」 までの7ページと、ここで使ってるプログラムのソースを、 ほぼ10時間連続で休まず書き続けているわけだもんね。 普通の人にとっては「缶詰状態で地獄以外のなにものでもない」のでしょうが、 全然苦にならない俺っていったい・・・。 パソコンの前に座るとご飯を食べることも忘れてしまうのもいけないことだとは思いつつも、 ついつい・・・。ここらでひと区切りとしましょうかねえ。いやもうちょっと気になるところが (^^; )


次は、ファイル処理についてです。

△TOP△   BACK       NEXT