C言語のfscanf関数の使い方についてわかりやすく詳しく解説

fscanf関数を使用することで、ファイルからのデータの読み込みや文字列・数値の読み込みが簡単に行えます。

この記事では、C言語のfscanf関数の使い方について詳しく解説します。

さらに、CSVファイルの読み込みやフォーマットに基づいたデータの読み込み、複数のファイルからの読み込みなど、応用例も紹介します。

目次から探す

fscanf関数とは

fscanf関数は、C言語の標準ライブラリ関数の一つであり、ファイルからデータを読み取るために使用されます。

scanf関数と同様に、指定されたフォーマットに従ってデータを変換し、変数に格納します。

fscanf関数の概要

fscanf関数の基本的な構文は以下の通りです。


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

stream

ファイルポインタを指定します。

読み取り対象のファイルを指定します。

format

フォーマット指定文字列を指定します。

読み取るデータの形式を指定します。

読み取ったデータを格納する変数を指定します。

fscanf関数の基本的な使い方

fscanf関数は、C言語でファイルからデータを読み込むために使用される関数です。

この関数を使うことで、ファイルから文字列や数値を読み込むことができます。

ファイルからの読み込み

まず、fscanf関数を使ってファイルからデータを読み込む方法を見ていきましょう。

以下のようなファイルがあるとします。

data.txt
-----------
Apple
Banana
Cherry
-----------

このファイルから1行ずつデータを読み込んで表示するプログラムを作成してみましょう。


#include <stdio.h>
int main() {
    FILE *file;
    char str[100];
    file = fopen("data.txt", "r");
    if (file == NULL) {
        printf("ファイルを開けませんでした。\n");
        return 1;
    }
    while (fscanf(file, "%s", str) != EOF) {
        printf("%s\n", str);
    }
    fclose(file);
    return 0;
}

このプログラムでは、まずファイルを開いています。

fopen関数の第1引数にはファイル名を、第2引数にはモードを指定します。

モードには、読み込みモードを示す"r"を指定します。

次に、fscanf関数を使ってファイルからデータを読み込んでいます。

fscanf関数の第1引数にはファイルポインタを、第2引数には書式指定子を、第3引数以降には読み込んだデータを格納する変数を指定します。

この例では、%sという書式指定子を使って文字列を読み込んでいます。

fscanf関数は、成功した場合には読み込んだデータの数を返し、ファイルの終端に達した場合にはEOFを返します。

そのため、whileループの条件式でfscanf関数の戻り値がEOFでないかをチェックしています。

文字列の読み込み

次に、fscanf関数を使って文字列を読み込む方法を見ていきましょう。

以下のようなプログラムを考えます。


#include <stdio.h>
int main() {
    char str[100];
    printf("文字列を入力してください:");
    scanf("%s", str);
    printf("入力された文字列は %s です。\n", str);
    return 0;
}

このプログラムでは、scanf関数を使ってキーボードから文字列を入力しています。

scanf関数の第1引数には書式指定子を、第2引数以降には読み込んだデータを格納する変数を指定します。

この例では、%sという書式指定子を使って文字列を読み込んでいます。

数値の読み込み

次に、fscanf関数を使って数値を読み込む方法を見ていきましょう。

以下のようなプログラムを考えます。


#include <stdio.h>
int main() {
    int num;
    printf("整数を入力してください:");
    scanf("%d", &num);
    printf("入力された整数は %d です。\n", num);
    return 0;
}

このプログラムでは、scanf関数を使ってキーボードから整数を入力しています。

%dという書式指定子を使って整数を読み込んでいます。

また、整数を読み込むためには、変数の前に&を付ける必要があります。

書式指定子の使用

最後に、fscanf関数で使用できる書式指定子について見ていきましょう。

以下によく使用される書式指定子をいくつか示します。

  • %d:10進数の整数を読み込む
  • %f:浮動小数点数を読み込む
  • %c:1文字を読み込む
  • %s:文字列を読み込む

これらの書式指定子を使って、ファイルから数値や文字列を読み込むことができます。

以上が、fscanf関数の基本的な使い方についての説明です。

ファイルからの読み込みや文字列・数値の読み込み、書式指定子の使用方法を理解して、自分のプログラムに活用してみてください。

1 2 3 4

目次から探す