2009-11-29 81 views
4

我想了解更多C++ ...通常我会创建一个for循环来解析argv,并且我最终得到了一堆C风格的字符串。我想在C++中做类似的事情,但最好不要读取/ proc/whatever。起初,我试图将C风格的字符串转换为C++风格的字符串,但没有结果......令人沮丧的是,所有人都似乎想知道如何去另一种方式,这就是c_str()的作用。 。什么是一个很好的C++方式来做到这一点(即解析argv)?在C++中解析argc和argv

而且,一个音符,我正在寻找一个UNIX风格的答案,所有的转换我已经看到了技术与Windows,这我完全在向uniterested做。

+0

只是好奇...你有这个想法,你需要阅读/ proc从这篇文章? http://blog.linuxgamepublishing.com/2009/10/12/argv-and-argc-and-just-how-to-get-them/ – 2009-11-29 06:04:19

+0

不,我没有......我讨厌这里的15个字符规则 – devin 2009-11-29 06:37:12

回答

22

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

我知道,让所有的参数在一个易于使用的阵列的清洁方法是:

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

但是,如果你正在寻找一种方式来真正分析数据,检查出Boost.ProgramOptions

+1

+1 Boost程序选项非常棒。使命令行应用程序变得如此简单。 – daramarak 2011-11-10 08:36:59

2

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

string s(argv[i]); 

...其中i是一个有效的索引argv