analizzando argc e argv in c ++
Domanda
Voglio saperne di più su C ++ ... Di solito realizzo un ciclo for per analizzare argv, e finisco con un mucchio di stringhe in stile C. Voglio fare qualcosa di simile in C ++, ma preferibilmente senza leggere da / proc / qualunque cosa. All'inizio, ho provato a convertire la stringa in stile C in una stringa in stile C ++ senza risultati ... Il punto frustrante è che tutti su SO sembrano voler sapere come andare dall'altra parte, che è ciò che c_str () è per . Qual è un buon modo C ++ per farlo (ad esempio parse argv)?
Inoltre, una nota, sto cercando una risposta in stile unix, tutte le tecniche di conversione che ho visto hanno a che fare con Windows, in cui sono completamente testato.
Soluzione
Non sono sicuro di aver compreso appieno la domanda.
Il metodo più pulito che conosco per ottenere tutti gli argomenti in un array facile da usare è:
std::vector<std::string> v(argv, argv + argc);
Ma se stai cercando un modo per analizzare davvero i dati, dai un'occhiata a Boost.ProgramOptions .
Altri suggerimenti
Hai problemi con la conversione di argv in stringhe? Puoi semplicemente fare:
string s(argv[i]);
... dove i
è un indice valido in argv
.