Warum geht das nicht
-
Ich hab volgendes geschrieben:
#include <iostream> using namespace std; void main(int argc, char *argv[]) { if (argv[1] == "as") { cout << "parameter empfangen" << endl; } else { cout << "normal" << endl; } }aber wen ich in die konsole schreibe "programm.exe as" kommt immer nur "normal" woran liegt das?
-
Du kannst bei char* oder char[] nicht den operator== gleich nehmen weil du sonst nur die Speicheradressen vergleichst und die nicht gleich sind.
Benutz strcmp aus <cstring>:if(strcmp(argv[1], "as") == 0) ...
-
aber wen ich das programm ohne konsole öffnet kommt von Windows immer sone Fehlermeldung
-
Xclear schrieb:
aber wen ich das programm ohne konsole öffnet kommt von Windows immer sone Fehlermeldung
Was den für ne Fehlermeldung?
Ich vermute einfach mal das du es dann ohne Argumente aufrufst und das es dann argv[1] nicht gibt.

Du musst vor dem Zugriff auf argv[1] einfach noch argc überprüfen.