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
   ********************************************************************/