c - 如何使用C检查文件是否为空?

标签 c file-handling

我有一个任务来检查文件是否为空。
我想在程序运行之前检查该文件,如果该文件不为空,我希望我的程序读取该文件,但如果该文件为空,我希望我的程序跳过该函数。

这是我的代码,但效果不佳:

void read_file() {
FILE *f;
f = fopen("contact.txt", "r");
fseek(f, 0, SEEK_END);
if (ftell(f) != 0) {
    while (!feof(f)) {
        fscanf(f, "%[^\;];%s\n", contact[n].name, contact[n].number);
        n++;
    }
}
fclose(f);
}

最佳答案

您缺少 fseek(f, 0, SEEK_SET)

fseek(f, 0, SEEK_END);
if (ftell(f) != 0) {
    fseek(f, 0, SEEK_SET);
    while (!feof(f)) {
        fscanf(f, "%[^\;];%s\n", contact[n].name, contact[n].number);
        n++;
    }
}

关于c - 如何使用C检查文件是否为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34836665/

相关文章:

c# - 并非所有代码路径都应在需要时返回值

c - 16 KB 由 OS X 上的 getc 和 fprintf 分配

perl - 如何使用 Perl 打开全名未知的文件?

c - 维吉尼亚密码C语言

c - 如何用C发送差分UART信号

c - 在C中以十六进制读取文件内容

python - 从二元语法列表中删除一元语法

Java:检测csv或txt文件的分隔符

c - gcc如何判断默认生成32位还是64位的可执行文件?

c - MessagePack 解包失败,并通过 Libcurl 收到 C 语言中的大型 Metasploit Framework 消息