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

c++ error: change from command line input to variable input

本文关键字:输入 变量 命令行 错误      更新时间:2023-10-16

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

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;

您必须提供数组的大小,因为您没有提供编译器可以从中推导大小的初始化器。同样,在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>的充分利用。