c - 如何检查文件中是否没有内容,以及如何避免从文件中读取最后一个字符?
问题描述
我在每个字符串之后都使用逗号作为分隔符
fp=fopen("log.dat","ab");
fprintf(fp,"%s%c",enteredUsername,',');
fclose(fp);
从文件中读取:
fp=fopen("log.dat","rb");
int c;
while ((c = fgetc(fp)) != EOF)
printf("%c", c);
我该如何:1.避免读取文件中的最后一个字符,2.检查文件是否为空?
解决方案
您可以像这样使用单字符缓冲区:
#include <stdio.h>
int main(void)
{
FILE *fp = fopen("log.dat", "rb");
if(fp == NULL) return;
int prev = -1000;
int c;
while ((c = fgetc(fp)) != EOF) {
if(prev >= 0) {
printf("%c", prev);
}
prev = c;
}
fclose(fp);
return 0;
}
输入log.dat
one,two,three,
输出
one,two,three