C言語のfscanf関数の使い方は?
fscanf関数とは、C言語でファイルからフォーマットされたデータをよみこむ関数です。その関数のプロトタイプは以下の通りです。
int fscanf(FILE *stream, const char *format, ...)
streamは読み込むファイルへのポインタ、formatは読み取るデータのフォーマットを指定する文字列、…は可変長引数で、読み込むデータを格納します。
フォーマット文字列に含まれるフォーマット制御記号に従って、fscanf関数はファイルからデータを読み取り、読み取ったデータを適切な型に合わせて対応する変数に格納します。一般的なフォーマット制御記号としては、次のものがあります。
- %d:整数データを読み込みます。
- %f:浮動小数点数のデータを読み込む
- %c:文字データ読み込み
- %s:文字列型データの読み込み
- %lf: double型の浮動小数点データの読み込み
- 符号なし整数データの読み取り
- n:8進整数を読み込む
- %X: 16 進数整数のデータを読み取ります。
- ポインタ型データの読み込みなど
たとえば、以下のコードはファイルから整数値を読み取り変数numに格納しています。
int num;
FILE *fp;
fp = fopen("file.txt", "r");
fscanf(fp, "%d", &num);
fclose(fp);
fscanf関数はデータを読み込む際,空白文字(スペース、タブ、改行など)を読み飛ばして、空白以外の文字を見つけます。またfscanf関数は、正常に読み込んだパラメータの個数を返します。読み取りに失敗した場合(ファイルの終端や書式の不一致など)はEOF(-1)を返します。
fscanf関数を使用する際にはファイルが正しくオープンされていることを確認し、データの読み込みが完了したら速やかにファイルをクローズして、ファイルリソースの無駄やデータの不整合の問題が発生しないように注意する必要がある。