C言語で行ごとに読み込む方法


C言語でファイルを行ごとに読み込む方法にはいくつかの方法があります。以下にいくつかの方法とそれぞれのコード例を示します。

方法1: fgets関数を使用する方法

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

上記のコードでは、fgets関数を使用してファイルから行を読み込みます。fgets関数は、指定した文字数までの文字列を読み込み、指定したバッファに格納します。行がなくなるまで行ごとに読み込み、NULLを返すまで繰り返します。

方法2: getline関数を使用する方法

#include <stdio.h>
#include <stdlib.h>
int main() {
    FILE *file;
    char *line = NULL;
    size_t len = 0;
    file = fopen("ファイル名.txt", "r");
    if (file == NULL) {
        printf("ファイルを開けませんでした。\n");
        return 1;
    }
    while (getline(&line, &len, file) != -1) {
        printf("%s", line);
    }
    free(line);
    fclose(file);
    return 0;
}

上記のコードでは、getline関数を使用してファイルから行を読み込みます。getline関数は、動的にメモリを割り当てて行を読み込み、NULLを返すまで繰り返します。読み込んだ行はlineポインタに格納され、必要に応じてfree関数を使用してメモリを解放する必要があります。