🔧 入出力 ・ stdio.h ・ C89
fscanf の使い方int fscanf(FILE *stream, const char *format, ...);
ストリームから書式に従って値を読み取る。ファイルから構造化データを読み込む際に使うが、区切り文字が想定外だと簡単に同期がずれるため、行単位でfgetsしてから解析する方が堅牢な場合も多い。 CSVのような単純な区切り形式であれば動くが、引用符やエスケープを含む複雑な形式には向かない。
#include <stdio.h>
int main(void) {
FILE *fp = fopen("nums.txt", "r");
int a, b;
if (fp) {
fscanf(fp, "%d %d", &a, &b);
printf("%d + %d = %d\n", a, b, a + b);
fclose(fp);
}
return 0;
}
⚠️ 入力フォーマットが崩れると読み取り位置がずれ、以降の値が全てずれて読み込まれる。
アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ
fscanf と一緒に使う関数fclose
feof
ferror
fflush
fgetc
fgets
fopen
fprintf
fputc
fputs
fread
fseek
ftell
fwrite
getchar
gets_s
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。