首页 > 解决方案 > 如何检查文件中是否没有内容,以及如何避免从文件中读取最后一个字符?

问题描述

我在每个字符串之后都使用逗号作为分隔符

        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.检查文件是否为空?

标签: c

解决方案


您可以像这样使用单字符缓冲区:

#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

推荐阅读