GMP大数的简单程序:将浮点数输出到文件,为什么不行呢?

简单测试代码如下:


#include <iostream>

#include <fstream>

#include <string>

#include <gmp.h>

#include <gmpxx.h>

#include <stdio.h>


using namespace std;


int main()

FILE *fp;


errno_t err;

err = fopen_s(&fp,"test.txt", "w+");


cout << "err的值:" << err << endl;


//将x写入文件

mpf_class x=1.5;

int i=gmp_fprintf(fp,"%Ff",x.get_mpf_t());


if (i == -1)

cout << "gmp_fprintf发生错误!" << endl;


cout << "i的值:" << i << endl;


fclose(fp);

return 0;

}


运行结果:


err=0,对于fopen_s来说表明打开文件成功,但是i=5,表明所写字符数为5,为什么是5?既然是5,为什么test.txt文件中没有值?


gmp_fprintf的格式是:int gmp_fprintf(FILE *fp,const char *fmt,...),这个函数到底应该怎么用?

已添加,麻烦通过下