#include <stdio.h>
#include <iostream>
#include <fstream>
#include <gmp.h>

int main(int argc, char **argv)
{
    std::string input_name = argv[1];
    std::ifstream input;
    input.open(input_name.c_str());

    std::string line;
    while (input >> line)
    {
        std::cout << line << std::endl;
        mpz_t test(line, 16);
    }

    input.close();
    return 0;
}

当我尝试编译这段代码时,我收到以下错误:

error: expression list treated as compound expression in initializer [-fpermissive]
         mpz_t test(line, 16);
                            ^
warning: left operand of comma operator has no effect [-Wunused-value]
error: array must be initialized with a brace-enclosed initializer
warning: unused variable 'test' [-Wunused-variable]
         mpz_t test(line, 16);
               ^

可能有什么不对?我使用 -lgmp 链接器选项和我尝试过的函数(即 mpz_init 被识别没有问题) .