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