使用 MPIR (GMP) 库将 mpf_t 值保存到文件
Saving mpf_t value to file using MPIR (GMP) library
我正在尝试将我的号码保存在文件中,但程序总是崩溃:
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)
看来我的 x64 构建有问题。
我再次编译了 MPIR(这次是 x32)并将文件放入 VS 目录并且它起作用了。
我的猜测是我没有遵循构建 x64 的特殊说明:\
顺便说一句。我用了
mpf_out_str(f, 10, 0, 变量);
其中 f 是指向文件的指针,10 是基数,0 表示最大精度,var 是将要保存的变量。
我正在尝试将我的号码保存在文件中,但程序总是崩溃:
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)
看来我的 x64 构建有问题。 我再次编译了 MPIR(这次是 x32)并将文件放入 VS 目录并且它起作用了。
我的猜测是我没有遵循构建 x64 的特殊说明:\
顺便说一句。我用了 mpf_out_str(f, 10, 0, 变量);
其中 f 是指向文件的指针,10 是基数,0 表示最大精度,var 是将要保存的变量。