Seite 1 von 1

int main ( int argc, char **argv )

Verfasst: 14. April 2012 09:28
von Boris_partys
Hallo, mal wieder.

Ich habe eine Frage zu den Argumenten der Main funktion.

Nun, ja ich habe ein wenig dazu etwas im Internet gefunden, nur brauche ich vllt noch einmal hier die Bestätigung, ob ich nun richtig liege:

Die Argumente int argc & char **argv werden aus der Kommandozeile heraus, vom Benutzer übergeben, richtig?

Könnte mir jemand dazu ein konkretes Beispiel posten? Ich habe leider dazu nichts gefunden.

Ich habe hier ein Beispiel aus einem Tutorial:

Code: Alles auswählen

int divideWith; // convert our input string to number - C++ style
    stringstream s;
    s << argv[2];
    s >> divideWith;
    if (!s)
    {
        cout << "Invalid number entered for dividing. " << endl;
        return -1;
    }
Das Programm soll ungefähr so aufgerufen werden:

Nameoftheprogram PicName.jpg intValueToReduce [G]

Grundsätzlich muss ich eingestehen, dass ich die Argumente der Main und ihre Übergabe (( --- int main ( int argc, char **argv ) --- )) noch nicht so wirklich in der praktischen Anwendung verstanden habe.

Kann mir jemand helfen??

Vielen Dank und allen ein schönes Wochenende.

Boris

Re: int main ( int argc, char **argv )

Verfasst: 14. April 2012 09:31
von franzf
Was genau ist denn dein Problem? Wie (wo?) du das Programm mit den Parametern startest? Wie die Parameter in die main gelangen? Oder wie du in der main (außerhalb?) an die Parameter kommst?
Oder alles?

Re: int main ( int argc, char **argv )

Verfasst: 14. April 2012 09:47
von Boris_partys
Hallo franzf

Eigentlich genau, wie ich das Programm starte. Und wie ich die Argumente übergeben kann. Ich gehe davon aus, aus der Kommando (Eingabeaufforderung) heraus. Nur das bekomme ich so nicht hin. Die Verzeichnisse habe ich "directed" bis in den Ordner, in dem das Programm liegt. Nur jetzt weiss ich nicht, wie ich das Programm aufrufe, incl. der Argumente. Ist das hinreichend genau erklärt? Ja, deshalb tummle ich mich hier bei den C++ Grundlagen. Ich bin nun mal ein Anfänger ;-)

Re: int main ( int argc, char **argv )

Verfasst: 14. April 2012 09:57
von franzf
Gut.
Dann tipp doch mal den Programmnamen ein und schau was passiert. (Mit der .exe-Endung, ohne Endung)
Dein Rechner wird schon nicht explodieren :P
Und wie die Parameterübergabe funktioniert, hast du oben schon richtig skizziert.

Re: int main ( int argc, char **argv )

Verfasst: 14. April 2012 10:04
von Boris_partys
Funzt. :D . Jetzt hab ich auch das kapiert. Da hab ich mir ja schon fast selbst die Antwort geliefert....Danke