C言語でファイルが空かどうかを判定する方法

C言語では、ファイルが空かどうかを以下で判断できます。

  1. 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;
}
  1. 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;
}

「取り扱いファイルを操作する前には、必ずそのファイルをオープンし、操作後必ず閉じる必要があります」

bannerAds