Как я могу записать тип данных __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");
} 
Другие вопросы по тегам