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

目次から探す

fscanf関数の応用例

fscanf関数は、ファイルからの読み込みや文字列からのデータの抽出に便利な関数です。

ここでは、fscanf関数の応用例をいくつか紹介します。

CSVファイルの読み込み

CSV(Comma-Separated Values)ファイルは、データをカンマで区切って保存するテキストファイルの形式です。

CSVファイルからデータを読み込む場合、fscanf関数を使用することで簡単にデータを取得することができます。

以下は、CSVファイルからデータを読み込むサンプルコードです。


#include <stdio.h>
int main() {
    FILE *file = fopen("data.csv", "r");
    if (file == NULL) {
        printf("ファイルを開けませんでした。\n");
        return 1;
    }
    int id;
    char name[256];
    int age;
    while (fscanf(file, "%d,%[^,],%d\n", &id, name, &age) != EOF) {
        printf("ID: %d, 名前: %s, 年齢: %d\n", id, name, age);
    }
    fclose(file);
    return 0;
}

上記のコードでは、data.csvという名前のCSVファイルを読み込んでいます。

ファイルを開くためにfopen関数を使用し、ファイルが正しく開けなかった場合にはエラーメッセージを表示しています。

fscanf関数では、書式指定子%d,%[^,],%d\nを使用して、カンマで区切られたデータを読み込んでいます。

%dは整数、%[^,]はカンマ以外の文字列、%d\nは整数と改行文字を表します。

フォーマットに基づいたデータの読み込み

fscanf関数は、指定したフォーマットに基づいてデータを読み込むこともできます。

例えば、日付や電話番号などの特定の形式のデータを読み込む場合に便利です。

以下は、電話番号を読み込むサンプルコードです。


#include <stdio.h>
int main() {
    char phone[12];
    printf("電話番号を入力してください(ハイフンあり):");
    scanf("%s", phone);
    int areaCode, firstPart, secondPart;
    sscanf(phone, "%d-%d-%d", &areaCode, &firstPart, &secondPart);
    printf("市外局番:%d\n", areaCode);
    printf("市内局番:%d\n", firstPart);
    printf("加入者番号:%d\n", secondPart);
    return 0;
}

上記のコードでは、scanf関数を使用してユーザーから電話番号を入力してもらっています。

入力された電話番号は、sscanf関数を使用して指定したフォーマットに基づいて分割され、それぞれの部分が別々の変数に格納されます。

複数のファイルからの読み込み

fscanf関数は、複数のファイルからのデータを一度に読み込むこともできます。

以下は、複数のファイルからデータを読み込むサンプルコードです。


#include <stdio.h>
int main() {
    FILE *file1 = fopen("data1.txt", "r");
    FILE *file2 = fopen("data2.txt", "r");
    if (file1 == NULL || file2 == NULL) {
        printf("ファイルを開けませんでした。\n");
        return 1;
    }
    int num1, num2;
    fscanf(file1, "%d", &num1);
    fscanf(file2, "%d", &num2);
    printf("ファイル1のデータ:%d\n", num1);
    printf("ファイル2のデータ:%d\n", num2);
    fclose(file1);
    fclose(file2);
    return 0;
}

上記のコードでは、data1.txtdata2.txtという2つのファイルからデータを読み込んでいます。

fopen関数を使用してファイルを開き、fscanf関数を使用してデータを読み込んでいます。

以上が、fscanf関数の応用例の紹介です。

fscanf関数は、さまざまなデータの読み込みに活用することができますので、ぜひ使い方をマスターして効率的なプログラミングを行いましょう。

1 2 3 4

目次から探す