fscanf関数は、C言語でファイルからフォーマットされたデータを読み取ります。

指定したフォーマット文字列に基づき、指定した入力ストリームからフォーマットされた入力を解析し、それらのデータを指定した変数に格納します。 fscanf関数は、ファイル、標準入力、またはその他の入力ストリームからデータを読み取ることができ、さらにフォーマット文字列で指定したフォーマットにしたがってデータを読み取ります。このフォーマット文字列には、データタイプやフォーマットを指定する %d、%f、%s などのさまざまなフォーマット制御記号を挿入できます。 fscanf 関数の一般的な構文は次のとおりです。

int fscanf(FILE *stream, const char *format, ...)

streamが渡された入力ストリームへのポインタ、formatがフォーマット文字列で、その後に続く省略記号(…)は、読み込んだデータを格納する引数を複数指定できることを示し、fscanf関数は与えられたフォーマット文字列に従って入力ストリームから対応するデータを1つずつ読み込み、それらをそれぞれの変数に格納します。正常に読み込みができた場合は読み込んだ引数の個数を返し、読み込みに失敗した場合やエラーが発生した場合はEOFを返します。例:

int num;
float price;
char name[20];
fscanf(stdin, "%d%f%s", &num, &price, name);

標準入力から整数、浮動小数点、文字列を順次読み込み、それらをそれぞれnum、price、name変数に格納します。fscanf関数は入力ストリームの制限(例:ファイルの終端、入力フォーマットが期待値と一致しない)によって、読み込みに失敗することがあり、fscanf関数を使用する際は、読み込みデータが想定通りであることを保証するため、エラー処理を行う必要があります。

bannerAds