简单测试代码如下:
#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,...),这个函数到底应该怎么用?