使用MPIR(GMP)库将mpf_t值保存到文件

时间:2016-05-06 12:03:30

标签: c file save gmp mpir

我正在尝试将我的号码保存在文件中,但程序一直在崩溃:

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,“%F”,& zbroj)

     

mpz_out_str(f,10,zbroj)

     

sprintf(f,“%F”,zbroj)

1 个答案:

答案 0 :(得分:0)

我的x64版本似乎出现了问题。 我再次编译MPIR(这次是x32)并将文件放到VS目录中并且工作正常。

我的猜测是,我没有遵循构建x64的特殊说明:\

顺便说一下。我用了     mpf_out_str(f,10,0,var);

其中f是指向文件的指针,10表示基数,0表示最大精度,var是可保存的变量。