wscanf() — ワイド文字書式ストリングを使用したデータの読み取り
フォーマット
#include <stdio.h>
int wscanf(const wchar_t *format,...);
言語レベル
ANSI
スレッド・セーフ
はい
ロケール依存
この関数の振る舞いは、現行ロケールの LC_CTYPE カテゴリーおよび LC_NUMERIC カテゴリーの影響を受ける可能性があります。また、LOCALETYPE(*LOCALEUCS2) または LOCALETYPE(*LOCALEUTF) が コンパイル・コマンドで指定されている場合、この振る舞いは、現行ロケールの LC_UNI_CTYPE カテゴリー および LC_UNI_NUMERIC カテゴリーの影響も受ける可能性があります。この関数は、コンパイル・コマンドに対して LOCALETYPE(*CLD) が指定されている場合には使用できません。詳細については、CCSID およびロケールの理解を参照してください。
統合ファイル・システム・インターフェース
この関数は、コンパイル・コマンドに対して SYSIFCOPT(*NOIFSIO) が指定されている場合には使用できません。
ワイド文字関数
詳細については、ワイド文字を参照してください。
説明
wscanf() 関数は、その引数の前に引数 stdin を置くと、fwscanf() 関数と同等になります。
戻り値
変換の前に入力障害が起こった場合、wscanf() 関数は マクロ EOF の値を戻します。
そうでない場合、wscanf() 関数は割り当てられた入力項目の数を戻します。 以前のマッチングが失敗した場合、この数は提供された数より少ないか、ゼロの 場合もあります。
例
この例では、さまざまなタイプのデータを走査します。
#include <stdio.h>
#include <wchar.h>
int main(void)
{
int i;
float fp;
char c,s[81];
printf("Enter an integer, a real number, a character and a string : ¥n");
if (wscanf(L"%d %f %c %s", &i, &fp,&c, s) != 4)
printf("Some fields were not assigned¥n");
else {
printf("integer = %d¥n", i);
printf("real number = %f¥n", fp);
printf("character = %c¥n", c);
printf("string = %s¥n", s);
}
return 0;
}
/********************************************************************
The output should be similar to:
Enter an integer, a real number, a character and a string :
12 2.5 a yes
integer = 12
real number = 2.500000
character = a
string = yes
********************************************************************/
関連情報
- fscanf() — フォーマット済みデータの読み取り
- fwprintf() — ワイド文字としてのデータのフォーマット設定とストリームへの書き込み
- fwscanf() — ワイド文字を使用したストリームからのデータの読み取り
- scanf() — データの読み取り
- sscanf() — データの読み取り
- swprintf() — ワイド文字のフォーマット設定とバッファーへの書き込み
- swscanf() — ワイド文字データの読み取り
- vfscanf() — フォーマット済みデータの読み取り
- vfwscanf() — フォーマット済みワイド文字データの読み取り
- vscanf() — フォーマット済みデータの読み取り
- vsscanf() — フォーマット済みデータの読み取り
- vswscanf() — フォーマット済みワイド文字データの読み取り
- vwscanf() — フォーマット済みワイド文字データの読み取り
- wprintf() — データのワイド文字としてのフォーマット設定と出力
- <wchar.h >