fscanf_s、fwscanf_s

提供: RAD Studio
移動先: 案内検索

stdio.h:インデックス への移動


ヘッダー ファイル

stdio.h

カテゴリ

書式付き入出力関数

プロトタイプ

int fscanf_s(FILE * restrict stream, const char * restrict format, [, address, ...]);

int fwscanf_s(FILE * restrict stream, const wchar_t * restrict format, [, address, ...]);

説明

fscanf、fwscanf の代わりとなる、セキュリティを強化した関数です。

fscanf_s は、stream で指定したdtream から、一度に 1 文字ずつ、一連の入力フィールドをスキャンします。 その後、format が指す先の形式文字列として fscanf に渡された形式指定子に従って、各フィールドを整形します。 最後に fscanf は、format の後の引数として渡されたアドレスに、整形済みの入力を格納します。 形式指定子とアドレスの数は、入力フィールドの数と同じでなければなりません。

メモ: 形式指定子の詳細については、「Scanf の書式指定子」を参照してください。

戻り値

fscanf_s は、スキャン、変換、格納が成功した入力フィールドの数を返します。 最初のフィールドが一致しなかった場合に、この値がゼロになる可能性があります。

変換が行われる前にエラーが発生した場合には、戻り値は EOF マクロになります。

#include <stdlib.h>
#include <stdio.h>
int main(void)
{
   int i;
   printf("Input an integer: ");
   /* Read an integer from the
      standard input stream */
   if (fscanf_s(stdin, "%d", &i))
      printf("The integer read was: %i\n", i);
   else
   {
      fprintf(stderr, "Error reading an integer from stdin.\n");
      exit(1);
   }
   return 0;
}

移植性

POSIX Win32 ANSI C ANSI C++

+

+

+

+

関連項目