-1

我正在使用 quadmath 库进行四精度。我可以使用 fwrite 函数写入二进制文件吗?

struct rec
{ 
   __float128 mydata;
}

struct rec my_record;

mydata=1.41421356237309504880q;
fwrite(&my_record, sizeof(struct rec), 1, myfile);
4

1 回答 1

0

写入文件应该没有问题。只要您以相同的方式(即使用fread)读回它并且文件没有在机器之间复制,您应该没问题。

您也不需要将值封装在结构中来执行此操作:

__float128 mydata;
int rval;

mydata=1.41421356237309504880q;

rval = fwrite(&mydata, sizeof(mydata), 1, myfile);
if (rval < 1) {
    perror("failed to write record");
} 

...

rval = fread(&mydata, sizeof(mydata), 1, myfile);
if (rval < 1) {
    perror("failed to read record");
} 
于 2016-01-04T21:13:22.030 回答