代码之家  ›  专栏  ›  技术社区  ›  Kokice Euunija

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

  •  0
  • Kokice Euunija  · 技术社区  · 10 年前

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

    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;
    }
    

    我尝试了:

    gmp_fscanf(f,“%f”,&zbroj)

    mpz输出str(f,10,zbroj)

    sprintf(f,“%f”,zbroj)

    1 回复  |  直到 5 年前
        1
  •  0
  •   Kokice Euunija    10 年前

    我的x64版本似乎有问题。 我再次编译MPIR(这次是x32),并将文件放入VS目录,它就可以工作了。

    我猜想,对于x64的构建,有一些特别的说明我没有遵循:\

    顺便说一下,我用过 mpf _输出_str(f,10,0,var);

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