fscanf_s、fwscanf_s
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++ |
---|---|---|---|
+ |
+ |
+ |
+ |