C言語学習ポータル(無料版) 学習コンテンツ 関数リファレンス fscanf

🔧 入出力 ・ stdio.h ・ C89

fscanf の使い方

C言語 標準ライブラリ関数リファレンス(無料公開)

書式

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 と一緒に使う関数

scanf標準入力から書式に従って値を読み取り、対応する変数へ格納する。各変換指定子には&を付けたポインタを渡す必要があり、渡し忘… fgetsストリームから最大n-1文字を1行読み取り、末尾に\0を付けてバッファへ格納する安全な入力関数。改行文字も含めて読み取る…

同じ分類(入出力)の関数

fclose feof ferror fflush fgetc fgets fopen fprintf fputc fputs fread fseek ftell fwrite getchar gets_s

もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。

完全版(BOOTH)を見る