c ++错误:从命令行输入更改为变量输入

时间:2017-03-05 18:44:08

标签: c++

我想从命令行输入更改为变量输入。

int main(int argc, char *argv[])
{
    std::cout << argc << std::endl;
    std::cout << argv[0] << std::endl;
    std::cout << argv[1] << std::endl;
}

更改为此,但是当我想编译时会出现错误。

int main()
{
    int argc = 2;

    char *argv[] = 0;

    argv[0] = "./server";
    argv[1] = "127.0.0.1";
}

出现此错误:错误:数组初始化程序必须是初始化程序列表     char * argv [] = 0;

1 个答案:

答案 0 :(得分:2)

您必须提供数组的大小,因为您没有提供初始化程序,编译器可以从中推断出大小。同样,从C ++ 11开始,您无法将 string-literal 绑定到char*,使用const char*

int main()
{
    constexpr int argc = 2;
    const char *argv[argc] = {};

    argv[0] = "./server";
    argv[1] = "127.0.0.1";
}

您可能希望更好地使用std::array<std::string, 2>