【发布时间】:2023-09-30 10:58:01
【问题描述】:
我将一些浮点值写入二进制文件,然后我想用另一个.c 程序读回它们。
我是这样写的:
#include <stdio.h>
int main() {
/* Create the file */
float x = 1.1;
FILE *fh = fopen ("file.bin", "wb");
if (fh != NULL) {
for (int i = 0; i < 10; ++i)
{
x = 1.1*i;
fwrite (&x,1, sizeof (x), fh);
printf("%f\n", x);
}
fclose (fh);
}
return 0;
}
这就是我想阅读它们的方式:
#include <stdio.h>
int main(){
/* Read the file back in */
FILE *fh = fopen ("file.bin", "wb");
float x = 7.7;
fh = fopen ("file.bin", "rb");
if (fh != NULL) {
while(!feof(fh)){
if(feof(fh))
break;
fread (&x, 1, sizeof (x), fh);
printf ("Value is: %f\n", x);
}
fclose (fh);
}
return 0;
}
但我得到了 7.7,这意味着读者从未找到任何值。
我该怎么做?我在这里错过了什么?
【问题讨论】:
标签: c file floating-point binaryfiles eof