我有一项任务来检查文件是否为空。
我想在程序运行之前检查文件,如果文件不为空我希望程序读取该文件,但如果文件为空,我希望程序跳过该功能。
这是我的代码,但它不能很好地运作:
foo/foo.js
答案 0 :(得分:5)
您缺少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++;
}
}
答案 1 :(得分:1)
如果您在可用的环境中运行,您可能会发现stat()
系统调用很有帮助。
例如:
struct stat s;
if (stat("contact.txt", &s) == -1) { /* an error occurred, check errno */ }
else if (s.st_size == 0) { /* the file is empty */ }
else { /* the file is not empty */ }