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
関数を使用してメモリを解放する必要があります。