wscanf

標準入力 (standard input) から書式ワイド文字列に従ってデータを読込みます.

#include <wchar.h>
int wscanf(
    const wchar_t * restrict format,
    ...
);

wscanf 関数は format が指す書式ワイド文字列に従って標準入力から入力されたデータを読込み,format に続く引数の指すオブジェクトに代入します.

wscanf 関数の動作は与えられた引数の前に stdin を引数として付加した fwscanf 関数と同じです.

引数

  • format: 書式ワイド文字列 (詳しくは以下を参照してください)

書式ワイド文字列

書式ワイド文字列には通常のワイド文字 (wide character) と変換指定を記述できます.

変換指定の形式は以下の通りです.なお [ ] で囲まれた部分は省略可能です.

%[代入抑止文字][フィールド幅][長さ修飾子]変換指定子

代入抑止文字

代入抑止文字 に * (アスタリスク) を指定すると指定された型は引数に代入されず読み飛ばされます.

長さ修飾子

長さ修飾子 に指定できる文字は以下の通りです.

長さ修飾子意味
hh対応する実引数の型が char 型であることを指定する
h対応する実引数の型が short 型であることを指定する
l (エル)対応する実引数の型が long 型かwchar_t 型であることを指定する
ll (エルエル)対応する実引数の型が long long 型であることを指定する
j対応する実引数の型が intmax_t 型であることを指定する
z対応する実引数の型が size_t 型であることを指定する
t対応する実引数の型が ptrdiff_t 型であることを指定する
L対応する実引数の型が long double 型であることを指定する

変換指定子

変換指定子読取り可能な文字等対応する引数
d10 進整数符号付き整数型へのポインタ
i整数符号付き整数型へのポインタ
o8 進整数符号無し整数型へのポインタ
u10 進整数符号無し整数型へのポインタ
x16 進整数符号無し整数型へのポインタ
a, e, f, g浮動小数点数に変換する.浮動小数点型へのポインタ
cフィールド幅で指定された長さのワイド文字の並び※1
s非空白類ワイド文字列※2
p処理系定義の文字の並びの集合 (printf関数の %p 変換で出力されるようなポインタの値)void へのポインタへのポインタ
n入力を読み取らない.その代わり,現時点までに入力ストリームから読み取った文字数がポインタに格納される.そのポインタは符号付き整数型へのポインタである必要がある
%1 つの '%' と照合する
[...][ ] で囲まれたものだけをワイド文字列 (wide string) として取得する

※1

  • 長さ修飾子 l (エル) の指定が無い場合: 文字列への先頭要素へのポインタ
  • 長さ修飾子 l (エル) の指定がある場合: wchar_t 型配列 (ワイド文字列) の先頭要素へのポインタ (ナルワイド文字は付加しない)

※2

  • 長さ修飾子 l (エル) の指定が無い場合: 文字列への先頭要素へのポインタ
  • 長さ修飾子 l (エル) の指定がある場合: wchar_t 型配列 (ワイド文字列) の先頭要素へのポインタ

戻り値

  • 成功した場合: 代入された入力項目の個数
  • 失敗した場合: EOF

Cプログラマの必読書

たくさんあるC言語関連の書籍の中でも特に役に立った本です.よかったら参考にしてみてください.

C実践プログラミング 第3版

C言語の実践的参考書.少々値段は張りますが初心者を脱しようとしている人は絶対に読むべきです.
文法だけでなく,コーディングスタイルやデバッグなど文字通り「実践的」なことが書かれているので非常にためになります. オライリーの本は,読みにくい本が多いのですが本書はとても読みやすくオススメです.


C言語ポインタ完全制覇 (標準プログラマーズライブラリ)

ポインタの解説書としては最高の書籍です.
この1冊でポインタを完全に理解することができます.全くの初学者が読むには敷居が高いですが,入門書を読み終えた後に読むと非常に有益です.