vwscanf, vfwscanf, vswscanf, vwscanf_s, vfwscanf_s, vswscanf_s
| ヘッダ <wchar.h>
|
||
int vwscanf( const wchar_t *restrict format, va_list vlist );
|
で定義 (1) | (C99以降) |
int vfwscanf( FILE *restrict stream,
const wchar_t *restrict format, va_list vlist );
|
(2) | (C99以降) |
int vswscanf( const wchar_t *restrict buffer,
const wchar_t *restrict format, va_list vlist );
|
(3) | (C99以降) |
int vwscanf_s( const wchar_t *restrict format, va_list vlist );
|
(4) | (C11以降) |
int vfwscanf_s( FILE *restrict stream,
const wchar_t *restrict format, va_list vlist );
|
(5) | (C11以降) |
int vswscanf_s( const wchar_t *restrict buffer,
const wchar_t *restrict format, va_list vlist );
|
(6) | (C11以降) |
様々なソースからデータを読み込み、format に従って解釈し、結果を vlist で定義された位置に格納します。
stream からデータを読み込みます。buffer からデータを読み込みます。文字列の終端に達することは、fwscanf%c、%s、%[ 変換指定子がそれぞれ2つの引数(通常のポインタと、受信配列のサイズを示す rsize_t 型の値。%lc で単一のワイド文字を読み取る場合は1になることがあります)を期待する点、および以下のエラーが実行時に検出され、現在インストールされている 制約ハンドラ 関数を呼び出す点が異なります。
- ポインタ型の引数のいずれかがヌルポインタである
format、stream、またはbufferがヌルポインタである- %c、%s、または %[ によって書き込まれる文字数(終端ヌル文字を含む)が、これらの変換指定子のそれぞれに指定された2番目の引数 (rsize_t) を超える場合
- オプションで、その他の検出可能なエラー(未知の変換指定子など)
- 他の境界チェック関数と同様に、
vwscanf_s、vfwscanf_s、およびvswscanf_sは、実装が__STDC_LIB_EXT1__を定義しており、ユーザーが__STDC_WANT_LIB_EXT1__をインクルードする前に整数定数1に < を定義した場合にのみ、利用が保証されます。>。
引数
| stream | - | 読み取り元の入力ファイルストリーム |
| buffer | - | ヌル終端ワイド文字列へのポインタ(読み取り元) |
| format | - | 入力の読み取り方法を指定するヌル終端ワイド文字列へのポインタ |
| vlist | - | 受信引数を含む可変引数リスト。 |
format 文字列は以下で構成されます。
%を除く空白以外のワイド文字:フォーマット文字列内のそのような各文字は、入力ストリームから1つの同一文字を消費します。ストリーム上の次の文字が一致しない場合、関数は失敗します。- 空白文字:フォーマット文字列内の単一の空白文字は、入力から利用可能な連続したすべての空白文字を消費します(iswspace をループで呼び出すように決定されます)。フォーマット文字列内の
"\n"、" "、"\t\t"、またはその他の空白に違いはないことに注意してください。 - 変換指定。各変換指定は以下の形式を持ちます。
- 導入の
%文字。
- 導入の
- (オプション) 代入抑止文字
*。このオプションが存在する場合、関数は変換結果をいずれの受信引数にも代入しません。
- (オプション) 代入抑止文字
- (オプション) 整数値(0より大きい)で、最大フィールド幅 を指定します。つまり、現在の変換指定によって行われる変換のために関数が消費できる最大文字数です。
%sと%[は、幅が指定されていない場合にバッファオーバーフローを引き起こす可能性があることに注意してください。
- (オプション) 整数値(0より大きい)で、最大フィールド幅 を指定します。つまり、現在の変換指定によって行われる変換のために関数が消費できる最大文字数です。
- (オプション) 長さ修飾子 で、受信引数のサイズ、つまり実際の宛先型を指定します。これは変換精度とオーバーフロールールに影響します。デフォルトの宛先型は変換型ごとに異なります(以下の表を参照)。
- 変換形式指定子。
以下の形式指定子が利用可能です。
| 変換 指定子 |
説明 | 期待される 引数の型 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| 長さ修飾子→ | hh
|
h
|
なし | l
|
ll
|
j
|
z
|
t
|
L
| |
| C99以降のみ利用可能→ | はい | はい | はい | はい | はい | |||||
%
|
リテラル
% に一致します。 |
N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
c
|
文字 または 文字 のシーケンスに一致します。
|
N/A | N/A | char* |
wchar_t* |
N/A | N/A | N/A | N/A | N/A |
s
|
空白以外の文字のシーケンス(文字列)に一致します。
| |||||||||
[set ]
|
set の文字セットからの非空の文字シーケンスに一致します。
| |||||||||
d
|
10進整数 に一致します。
|
signed char* または unsigned char* |
signed short* または unsigned short* |
signed int* または unsigned int* |
signed long* または unsigned long* |
signed long long* または unsigned long long* |
intmax_t* または uintmax_t* |
size_t* |
ptrdiff_t* |
N/A |
b (C23)
|
符号なし 2進整数 に一致します。
| |||||||||
i
|
整数 に一致します。
| |||||||||
u
|
符号なし 10進整数 に一致します。
| |||||||||
o
|
符号なし 8進整数 に一致します。
| |||||||||
xX
|
符号なし 16進整数 に一致します。
| |||||||||
n
|
これまでに読み取られた文字数 を返します。
| |||||||||
a (C99)A (C99)eEfF (C99)gG
|
浮動小数点数 に一致します。
|
N/A | N/A | float* |
double* |
N/A | N/A | N/A | N/A | long double* |
p
|
ポインタ を定義する実装定義の文字シーケンスに一致します。
|
N/A | N/A | void** |
N/A | N/A | N/A | N/A | N/A | N/A |
| ノート | ||||||||||
|
長さ指定子 変換指定子 固定幅整数型 (int8_t など) の正しい変換指定は、ヘッダ <inttypes.h> で定義されています(ただし SCNdMAX、SCNuMAX などは 各変換指定子の動作の後にはシーケンスポイントがあります。これにより、同じ「シンク」変数に複数のフィールドを格納できます。 変換指定子 変換指定が無効な場合、動作は未定義です。 | ||||||||||
戻り値
ノート
これらの関数はすべて va_arg を呼び出す可能性があり、戻り後に arg の値は不定です。これらの関数は va_end を呼び出さず、呼び出し元が行う必要があります。
例
| このセクションは不完全です 理由:例がありません |
参考文献
- C11 標準 (ISO/IEC 9899:2011):
- 7.29.2.6 The vfwscanf function (p: 418)
- 7.29.2.8 The vswscanf function (p: 419)
- 7.29.2.10 The vwscanf function (p: 420)
- K.3.9.1.7 The vfwscanf_s function (p: 632-633)
- K.3.9.1.10 The vswscanf_s function (p: 635-636)
- K.3.9.1.12 The vwscanf_s function (p: 637)
- C99 標準 (ISO/IEC 9899:1999):
- 7.24.2.6 The vfwscanf function (p: 364)
- 7.24.2.8 The vswscanf function (p: 365)
- 7.24.2.10 The vwscanf function (p: 366)
関連項目
(C95)(C95)(C95)(C11)(C11)(C11) |
stdin、ファイルストリームまたはバッファから書式付きワイド文字入力を読み取ります (関数) |
C++ ドキュメント vwscanf、vfwscanf、vswscanf
| |