4

我想学习更多 C++... 通常我会创建一个 for 循环来解析 argv,最后我会得到一堆 C 风格的字符串。我想在 C++ 中做类似的事情,但最好不要从 /proc/whatever 中读取。起初,我试图将 C 风格的字符串转换为 C++ 风格的字符串,但没有结果......令人沮丧的是,SO 上的每个人似乎都想知道如何走另一条路,这就是 c_str() 的用途. 有什么好的 C++ 方法来做到这一点(即解析 argv)?

另外,请注意,我正在寻找一个 unix 风格的答案,我所见过的所有转换技术都与 Windows 有关,我对此完全感兴趣。

4

2 回答 2

24

我不确定我是否完全理解这个问题。

我知道在一个易于使用的数组中获取所有参数的最简洁的方法是:

std::vector<std::string> v(argv, argv + argc);

但是,如果您正在寻找一种真正解析数据的方法,请查看Boost.ProgramOptions

于 2009-11-29T06:07:21.307 回答
2

您在将 argv 转换为字符串时遇到问题吗?你可以这样做:

string s(argv[i]);

...whereiargv.

于 2009-11-29T05:41:49.323 回答