在 C++ 中我有一个 main 函数
int argc, char * argv[]
我需要在另一个函数中访问 argv[]
中的数据(即参数)。
我要声明一个全局变量,一个指向char **argv
的指针。
我该怎么做?
最佳答案
在 C++ 中,通常*处理 argv
的最佳方式是这样的:
int main(int argc, char **argv)
{
std::vector<std::string> args(argv, argv + argc);
}
现在你有了 args
,一个正确构造的 std::vector
将 argv
的每个元素作为 std::string
。看不到难看的 C 风格 const char*
。
然后您可以根据需要传递此 vector 或其中的一些元素。
* 它承载了动态分配每个 argv
字符串拷贝的内存和时间开销。但对于绝大多数程序而言,命令行处理对性能而言并不是关键的,增加的可维护性和健壮性是非常值得的。
关于c++ - 如何在main中指向char *argv[]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21426252/