C言語でテキストファイルの全内容を読み込む方法
C言語では、fopen関数でファイルを開き、fread関数でファイルの中身をすべて読み込むことができます。
ファイルの内容全体を読み込むサンプルコードは次のとおりです。
#include <stdio.h>
int main() {
FILE *file;
long fileSize;
char *buffer;
// 打开文件
file = fopen("file.txt", "rb");
if (file == NULL) {
printf("无法打开文件");
return 1;
}
// 获取文件大小
fseek(file, 0, SEEK_END);
fileSize = ftell(file);
rewind(file);
// 分配内存空间
buffer = (char*) malloc(fileSize * sizeof(char));
if (buffer == NULL) {
printf("内存分配失败");
return 1;
}
// 读取文件内容
fread(buffer, sizeof(char), fileSize, file);
// 输出文件内容
printf("%s", buffer);
// 关闭文件和释放内存
fclose(file);
free(buffer);
return 0;
}
サンプルコードでは、最初にfopen関数でファイルをバイナリ形式で開いています。ファイルを開くことができない場合は、エラーメッセージを出力して終了します。
続いて、fseek関数、ftell関数を使ってファイルサイズを取得し、rewind関数でファイルポインタをファイル先頭にリセットする。
次に、malloc関数を使いファイルのサイズ分、メモリ領域を動的に確保します。メモリの確保に失敗したら、エラーメッセージを出力して戻ります。
これに続いて、fread関数の呼び出しによりファイルをすべて割り当てられたメモリ領域に読み込む。
最後に、printf 関数を使用してファイルの内容を出力し、ファイルを閉じ、メモリを解放する。
ファイルの中身は文字配列としてメモリに格納されるため、バイナリデータは正しく出力できない可能性があります。