C言語でファイルが空かどうかを判定する方法
C言語では、ファイルが空かどうかを以下で判断できます。
- fseek関数を用いてファイルポインタをファイル末尾へ移動し、ftell関数を用いて現在のファイルポインタ位置を取得する。位置が0であればファイルは空である。
#include <stdio.h>
int main() {
FILE *file = fopen("file.txt", "r"); // 打开文件
fseek(file, 0, SEEK_END); // 移动文件指针到文件末尾
if (ftell(file) == 0) { // 获取文件指针位置
printf("文件为空\n");
} else {
printf("文件不为空\n");
}
fclose(file); // 关闭文件
return 0;
}
- fgetc関数を使いファイルから逐次文字を読み込み、ファイルの末尾に達した場合ファイルは空である。
#include <stdio.h>
int main() {
FILE *file = fopen("file.txt", "r"); // 打开文件
int c = fgetc(file); // 读取文件中的一个字符
if (c == EOF) { // 判断是否到达文件末尾
printf("文件为空\n");
} else {
printf("文件不为空\n");
}
fclose(file); // 关闭文件
return 0;
}
「取り扱いファイルを操作する前には、必ずそのファイルをオープンし、操作後必ず閉じる必要があります」