GMP库 - 文件I / O.

时间:2016-03-07 00:05:09

标签: c++ g++ gmp

好。所以我使用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(),但它似乎无法正常工作

1 个答案:

答案 0 :(得分:2)

您应该使用gmp_fprintf()

%Zd的格式说明符为mpz_t,因此代码就像

gmp_fprintf(file, "%Zd\n%Zd\n", a, b);

其他格式说明符和示例位于GNU MP 6.1.0: Formatted Output Strings