2016-05-06 2 views
0

Я пытаюсь сохранить свой номер в файле, но программа продолжает Грохот:Сохранение значения mpf_t в файл с помощью MPIR (GMP) библиотеки

include stdio.h 
include mpir.h 

int main(void){ 

mpf_set_default_prec(32); //Default precision for floating points 

mpf_t my_number; 
mpf_init_set_str(my_number, "5.12345e0", 10); //Set my_number to 5.123 with decimal base (10) 

FILE *f; 
f = fopen("some.txt", "w"); 

gmp_printf("Printed number to screen: %.*Ff \n", 32, my_number); 

//Everything works until I try to save it to file: 

gmp_fprintf(f, "My saved number is: %.*Ff \n", 32, my_number); 

fclose(f); 

return 0; 
} 

Вместо fprintf я попытался:

gmp_fscanf (е, "% F" & zbroj)

mpz_out_str (е, 10, zbroj)

Sprintf (е, "% F", zbroj)

+0

Обратите внимание, что вы пропускаете память, не вызывая 'mpf_clear (my_number)'. –

ответ

0

Кажется, что что-то не так с моей сборкой x64. Я снова скомпилировал MPIR (на этот раз x32) и поместил файлы в каталог VS, и он сработал.

Я думаю, что есть специальные инструкции по сборке x64, что я не следовать: \

КСТАТИ. Я использовал mpf_out_str (f, 10, 0, var);

Где f является указателем на файл, 10 является базовым, 0 означает максимальную точность, а переменная var является переменной, которая будет сохранена.

Смежные вопросы