komandozeilenargumente
-
Hallo, ich habe noch eine frage zu kommandozeilenargumenten:
warum gibt mir mein nicht die möglichen argumente für mein programm aus, wenn ich mein programm so ausführe: ./codeit -hif (argv[1] == "-h") { cout << endl; cout << "./codeit Pfad Modus Passwort"; cout << endl; cout << endl; cout << "\tPfad:\n\t\tfür Dateien:\tbla/blub.xyz\n\t\tfür Ordner:\tbla/blub/"; cout << endl; cout << endl; cout << "\tModus:\n\t\tzum Verschlüsseln:\tver\n\t\tzum Entschlüsseln:\tent\n\t\tfür Lodatei \"log\" anhängen"; cout << endl; cout << endl; cout << "\tPasswort\n\t\ta-z\n\t\t0-9\n\t\t12 Zeichen maximal"; cout << endl; cout << endl; }Bin für jede Hilfe dankbar!!!
-
Weil du zwei Zeiger vergleichst, nicht zwei Zeichenketten.
Nutz lieber diese Variante:
#include <vector> #include <string> #include <iostream> int main(int argc, char *argv[]) { std::vector<std::string> arguments(argv, argv + argc); if (arguments.at(1) == "-h") { ... } }
-
Man kann C-Strings nicht mit == vergleichen.
Du solltest die Parameter vorher in ein set<string> bzw. eine map<string,string> schieben.