“r”模式可以读取二进制文件但“rb”不能?

问题描述 投票:0回答:0

我的老师给了我一个 .txt 文件,其中包含关于这样一个结构的二进制内容:

struct NV {
     int err;
     char code[30];
}

我已经使用了“rb” fread 模式来读取数据但是它不起作用.

void readFile(struct NV nv[], char s[],int *i) {
    FILE* f = fopen(s,"rb");
    while (fread(&nv[*i], sizeof(struct NV), 1, f) == 1) {
        ++(*i);
    }
    fclose(f);
}

但是当我用“r”替换**“rb”**时,有效.

我已经尝试将 .txt 文件更改为 .bin 文件,但它仍然不起作用。我很困惑这里发生了什么,希望有人能帮助我,谢谢。

struct file-handling
© www.soinside.com 2019 - 2024. All rights reserved.