Как я могу записать тип данных __float128 в двоичный файл?
Я использую библиотеку Quadmath для Quad-точности. Могу ли я использовать функцию fwrite для записи в двоичный файл?
struct rec
{
__float128 mydata;
}
struct rec my_record;
mydata=1.41421356237309504880q;
fwrite(&my_record, sizeof(struct rec), 1, myfile);
1 ответ
У вас не должно быть проблем с записью в файл. Пока вы читаете его обратно таким же образом (т.е. с 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");
}