我有一个文件IO系统,其中存储结构
在代码中,我希望逐个读取所有结构,并在每个结构中将变量“pay”设置为0,然后在文件中再次写入

long int recsize;
recsize=sizeof(payment);
f=fopen("C:\\HOTEL.DAT", "rb+");
if(f == NULL){
    clrscr();
    cprintf("File could not be opened!");
    sleep(4);
    exit(0);
}

while(fread(&payment, recsize, 1, f) == 1){
            payment.pay=0;
            fseek(f, -recsize, SEEK_CUR);
            fwrite(&payment, recsize, 1, f);
 }

我得到一个运行时错误,它不会改变所有结构中的变量,它会改变其中一些结构中的变量

最佳答案

我建议不要尝试将数据作为二进制blob读取,而应坚持读取单个字段。它更坚固,特别是如果你想改变你的结构

关于c - 在循环中读取fwrite时出错-C,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19107749/

10-11 15:33