curs_scanw 3x

curs_scanw(3x)                                           curs_scanw(3x)




名前

       scanw, wscanw, mvscanw, mvwscanw, vwscanw, vw_scanw 
       - curses ウインドウからの書式つき入力の変換


書式

       #include <curses.h>

       int scanw(char *fmt, ...);
       int wscanw(WINDOW *win, char *fmt, ...);
       int mvscanw(int y, int x, char *fmt, ...);
       int mvwscanw(WINDOW *win, int y, int x, char *fmt, ...);
       int vw_scanw(WINDOW *win, char *fmt, va_list varglist);
       int vwscanw(WINDOW *win, char *fmt, va_list varglist);


説明

        scanw, wscanw, mvscanw ルーチンは scanf に類似した
       ルーチンです。[scanf(3) 参照]
        実際には、これらのルーチンは、そのウインドウで wgetstr が
       呼び出され、結果の行を sscanf(3) の入力に用いたように
       なります。
        fmt フィールドで変数に対応付けられていないフィールドは
       失われます。

        vwscanw, vw_scanw ルーチンは vscanf に類似したルーチンです。
        これらは可変引数リストを使って wscanw を実行します。
        第 3 引数は引数リストへのポインタで、<stdarg.h> で
       定義されている va_list 型です。


戻り値

        vwscanw は失敗のとき ERR を、成功のとき読み取った
       フィールドの数に等しい整数を返します。

        アプリケーションは呼び出しで代入されたフィールドの数を
       判定するために scanw, wscanw, mvscanw, mvwscanw ルーチンの
       戻り値を使うことができます。

         mv で始まる関数は、最初に wmove を使用してカーソルを移動し、
       位置がウインドウの外だった場合、またはウインドウ・ポインタが
       ヌルの場合にエラーを返します。


移植性

        これらの関数は XSI Curses standard, Issue 4 に記載されて
       います。
        vwscanw 関数は廃止項目と注記されており、
       <stdarg.h> インターフェイスを使った vw_scanw 関数によって
       置き換えられるでしょう。
        Single Unix Specification, Version 2 は、<stdarg.h> と
       同じファイルで使うことができない <varargs.h> を取り込む必要が
       ある vwscanw よりも vw_scanw が適していると明記しています。
        この実装では両方に <stdarg.h> を使っています。
       このヘッダファイルが <curses.h> で取り込まれるためです。

        XSI と Single Unix Specification, Version 2 はともに、
       これらの関数は ERR または OK を返すと明記しています。
        元となった scanf は代入した項目の数を返せますし、
       SVr4 のコードはこの機能を使うと説明されているので、
       これはおそらく XSI に導入された編集上の誤りであって、
       意図的なものではないでしょう。
        ポータブル・アプリケーションは戻り値が ERR かどうかだけを
       調べるべきです。OK 値 (ゼロ) は誤解を招きそうだからです。
        意味のある結果を得るためにできる 1 つの手段は、
       書式文字列の最後に "%n" 変換を使って、何かが処理されたことを
       確かめることでしょう。


関連項目

       curses(3x), curs_getstr(3x), curs_printw(3x), scanf(3)



                                                         curs_scanw(3x)