我正在使用quadmath库来实现四精度。 我可以使用fwrite函数写入二进制文件吗?
struct rec
{
__float128 mydata;
}
struct rec my_record;
mydata=1.41421356237309504880q;
fwrite(&my_record, sizeof(struct rec), 1, myfile);
答案 0 :(得分: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");
}