好。所以我使用GMP库来计算大数字。我有这样的代码:
#include <stdio.h>
#include <iostream>
#include <cstdlib>
#include <string>
#include <gmp.h>
using std::cout;
using std::endl;
int main(int argc, char** argv)
{
FILE *file;
file = fopen("data.txt", "wt");
int number=atoi(argv[1]), i=1;
mpz_t a; mpz_init(a);
mpz_t b; mpz_init(b);
mpz_set_ui(b, 1);
cout<<a<<endl;
for (; number>0; number--, i++)
{
cout<<i<<". "<<b<<endl;
mpz_add(b,b,a);
mpz_sub(a,b,a);
}
mpz_clear(a);
mpz_clear(b);
fclose(file);
}
我想将数字(a,b)打印到.txt
文件。我该怎么做?尝试了fprintf()
,但它似乎无法正常工作
答案 0 :(得分:2)
您应该使用gmp_fprintf()
。
%Zd
的格式说明符为mpz_t
,因此代码就像
gmp_fprintf(file, "%Zd\n%Zd\n", a, b);
其他格式说明符和示例位于GNU MP 6.1.0: Formatted Output Strings