Вопрос
Я хочу больше узнать C ++ ... Обычно я делаю цикл for для разбора argv и получаю кучу строк в стиле C. Я хочу сделать что-то подобное в C ++, но желательно без чтения из / proc / что угодно. Сначала я пытался преобразовать строку в стиле C в строку в стиле C ++ безрезультатно ... Огорчает то, что все на SO, похоже, хотят знать, как пойти другим путем, для чего и нужна c_str () , Какой хороший способ сделать это на C ++ (например, parse argv)? Р>
Также, одна заметка, я ищу ответ в стиле Unix, все техники конверсии, которые я видел, имеют отношение к Windows, в которой я совершенно не заинтересован.
Решение
Я не уверен, что полностью понимаю вопрос.
Самый чистый метод, который я знаю, чтобы получить все аргументы в простом в использовании массиве:
std::vector<std::string> v(argv, argv + argc);
Но если вы ищете способ действительно проанализировать данные, посмотрите Boost.ProgramOptions . р>
Другие советы
У вас проблемы с преобразованием argv в строки? Вы можете просто сделать:
string s(argv[i]);
... где i
является допустимым индексом для argv
.