werteübergabe
-
#include <iostream> using namespace std; int main(int argc, char ** argv) { if (std::strcmp(argv[1], "Hallo, Passwort") == 0) { cout << "du bist drinnen\n"; } cout << "...\n"; system("PAUSE"); }Allso sagen spricht eine satte Windowsmeldung... mit Problembericht und dem so bekannten fenster
-
wie rufst du dein programm auf?
-
wie frage auch antwort sein kann... naja war dumm

wie bekomm ich aber bei einem normalen start den fehlerbericht weg, ohne auf andere funktionen (das mit der eingabeaufforderung) zu verzichten?
-
Argc überprüfen, ob argv überhaupt zwei Elemente lang ist z.B.

-
das ist es ja sonst würde es nicht in der eingabeaufforderung funktionieren mit 3 werten...
-
Lass Dir argc einfach mal ausgeben und ruf das Programm mit unterschiedlich vielen Parametern auf...
-
argc liegt bei 1
argv bei einem wert uf ich gucke mal:
2x3d2488
und ich benutze argv
-
Wenn argc 1 ist ist argv aber nur 1 Element lang, d.h. argv[0] ist gültig, argv[1] nicht mehr.
Und jetzt ruf Dein Programm mal mit einem und mit zwei Parametern in ner Kommandozeile auf (ja muss man denn hier alles vorkauen
)
-
nur noch eine frage dann wie vergrößer ich argc?
übrigens ich brauche insgesammt 3 parameter für mein programm
-
Hast Du bisher ein einziges mal ausprobiert, was für einen Wert argc hat wenn Du Dein Programm mit Parametern aufrufst?
argc ist die Anzahl der übergebenen Parameter, inklusive dem Programmnamen (also ist argc mindestens 1)
-
argc und argv hängen davon ab, wie du das Programm aufrufst (das versucht dir LordJaxom die ganze Zeit schon zu erklären):
prog argc=1 argv={"prog"} prog test argc=2 argv={"prog","test"} prog help p1 p2 p3 argc=5 argv={"prog","help","p1","p2","p3"}
-
Ich hatte eigentlich gehofft beim Ausprobieren würde sich ein Aha-Effekt einstellen

(Davon mal ab dass man das Thema in jedem besseren C-Tutorial bei der Behandlung des Programmstarts hätte nachlesen können)