ファイル入力の比較: file vs fgets


  1. file: 「file」は、C言語の標準ライブラリ関数であり、ファイルを開いてデータを読み込むための柔軟な方法です。以下に、「file」を使用したファイル入力の例を示します。
#include <stdio.h>
int main() {
    FILE *fp;
    char buffer[100];
    fp = fopen("input.txt", "r");
    if (fp == NULL) {
        printf("ファイルを開けませんでした。\n");
        return 1;
    }
    while (fgets(buffer, sizeof(buffer), fp) != NULL) {
        // ファイルから読み込んだデータを処理する
        printf("%s", buffer);
    }
    fclose(fp);
    return 0;
}
  1. fgets: 「fgets」もC言語の標準ライブラリ関数であり、文字列をファイルから読み込むための方法です。以下に、「fgets」を使用したファイル入力の例を示します。
#include <stdio.h>
int main() {
    FILE *fp;
    char buffer[100];
    fp = fopen("input.txt", "r");
    if (fp == NULL) {
        printf("ファイルを開けませんでした。\n");
        return 1;
    }
    while (fgets(buffer, sizeof(buffer), fp) != NULL) {
        // ファイルから読み込んだデータを処理する
        printf("%s", buffer);
    }
    fclose(fp);
    return 0;
}

「file」と「fgets」の違いは、主に使い方と扱うデータの形式にあります。以下にそれぞれの特徴をまとめます。

  • file:

    • バイナリデータやテキストデータなど、さまざまな形式のデータを読み込むことができる。
    • ファイルを開くためには、fopen関数を使用し、ファイルポインタを取得する必要がある。
    • ファイルポインタを使用して、freadfgetc関数などを使ってデータを読み込むことができる。
  • fgets:

    • テキストデータのみを読み込むことができる。
    • fgets関数を使用して、指定したバッファサイズに収まる文字列を一行ずつ読み込む。
    • ファイルポインタを使用せず、fgets関数自体がファイルからデータを読み込む。

どちらの方法を選ぶかは、読み込むデータの種類や処理のニーズによって異なります。ファイルの種類やサイズ、読み込み方法などを考慮して、適切な方法を選択してください。