ARGV-Argumenten einlesen?
-
Wie lese ich die argv-Argumente aus der Kommandozeile nach einer C++ Weise ein?
Z.B. wir haben:
/prog arg1 -opt value arg2_ohne_opt arg3 -opt_ohne_val
-
std::vector<std::string> vec; for(int i=0; i <= argc; ++i){ vec.push_back(argv[i]); }hoffe mal das stimmt so

gruesse
-
int main(int argc, char* argv[]) { for(int i=0;i<argc;++i) cout<<argv[i]; }argv[0] enthält idR den Programmnamen, argv[1] bis argv[argc-1] die einzelnen Argumente (jedes Leerzeichen im aufrufenden Befehl beginnt ein neues Argument), argv[argc] ist immer NULL.
-
args ... hab mich vertan ... bei mir inner schleife muss es "i<argc" heissen -.-
gruessle
-
std::vector<std::string> args(argc - 1); std::copy(argv + 1, argv + argc, args.begin());
-
Niemand hat mir gesagt wie ich die Schlüssel von den Argumenten trennen kann.
Ich wiederhole es:
/prog arg1
Dies ist nur 1 einziges Argument.
/prog arg1 -opt
Das ist ein Argument mit Einstellung
/prog arg1 -opt value
Das ist ein Argument mit Einstellung und einen Wert
-
Hi!
Das erkennst du an dem "-" vor den entsprechenden Argumenten. Und wenn du ein solches hast weist du auch wieviel Argumente danach die entsprechenden Werte darstellen.
grüße
-
Wie immer ist da Boost der Retter in der Not:
http://www.boost.org/doc/html/program_options.html
-
Danke! Genau das brauchte ich!