GMP 库 - 文件 I/O
GMP Library - File I/O
好的。所以我正在使用 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()
,但好像不行
你应该使用 gmp_fprintf()
.
mpz_t
的格式说明符将为 %Zd
,因此代码将类似于
gmp_fprintf(file, "%Zd\n%Zd\n", a, b);
其他格式说明符和样本在 GNU MP 6.1.0: Formatted Output Strings
好的。所以我正在使用 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()
,但好像不行
你应该使用 gmp_fprintf()
.
mpz_t
的格式说明符将为 %Zd
,因此代码将类似于
gmp_fprintf(file, "%Zd\n%Zd\n", a, b);
其他格式说明符和样本在 GNU MP 6.1.0: Formatted Output Strings