Kommandozeile ?
-
Hallo,
ich möchte per kommandozeile paramenter an string variablen übergeben.
ich bekomme den error das ich char nicht in string umwandeln kann.
also habe ich das arguement inint main(int argc, string**argv)geändert.
folge =>cannot convert string to string.gibt es irgentwo vielleicht ein beispielprogramm? kommandozeilenübergabe habe ich bisher noch nicht gemacht.

int main(int argc, char **argv) { ////////////////////////////////////////////////////////////////////////////////////////////////////////////// string paraZoneID,paraStartX,paraStartY,paraStartZ,paraEndX,paraEndY,paraEndZ, paraWpOption,paraGUID;////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////// argc=9; // 9 argc argv[1] = paraZoneID; //-> ZoneID (kontinent) argv[2] = paraStartX; //-> Start X argv[3] = paraStartY; //-> Start Y argv[4] = paraStartZ; //-> Start Z argv[5] = paraEndX; //-> Ende X argv[6] = paraEndY; //-> Ende Y argv[7] = paraEndZ; //-> Ende Z argv[8] = paraWpOption; //-> Wp Option argv[9] = paraGUID; //-> GUID
-
Wenn du die Parameter als strings haben möchtest, reicht ein einfaches
std::vector<std::string> args(argv, argv + argc);Achja...
#include <vector> #include <string>...nicht vergessen.
-
tut mir leid ich kenne mich mit kommandozeile überhaupt nicht aus
werden die übergeben variablen automatisch in
vector<string> args(argv, argv + argc);gespeichert?
ich muss also nichts mehr tun ?
-
Ja, alle Argumente, die dem Programm bei Start übergeben werden, hast du dann im vector args.
-
wow...
einfacher gehts garnichtsuper vielen dank
-
Falls du dann noch mehr tun willst, als nur ein paar Argumente zu übergeben, wäre evtl boost::program_options einen Blick wert. http://www.boost.org/doc/libs/1_47_0/doc/html/program_options.html
-
Wenn ich mein programm starten möchte hängt es sich natürlich auf weil es keine argumente bekommen hat. also habe ich mir gedacht ich könnte es mit empty machen, was leider aber nicht funktioniert, da der vector auch ohne arguments nicht empty ist.
ich muss vorher clear() ausführen, aber das bringt mir nichts wenn ich nicht überprüfen kann ob der vector leer ist oder nicht =(.int main(int argc, char **argv) { vector<string> args(argv, argv + argc); //args.clear(); if(args.empty()) { cerr << " No arguments found!"; return -1; } }
-
Standardmäßig wird als erstes Argument meist der Name des Programmes (mit Pfad) übergeben). Teste also besser auf Größe 1.
-
stimmt... danke
