int main ( int argc, char **argv )

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
Boris_partys
Beiträge: 14
Registriert: 20. Februar 2012 06:22

int main ( int argc, char **argv )

Beitrag 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
Zuletzt geändert von Boris_partys am 14. April 2012 09:48, insgesamt 1-mal geändert.
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

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

Beitrag 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?
Boris_partys
Beiträge: 14
Registriert: 20. Februar 2012 06:22

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

Beitrag 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 ;-)
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

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

Beitrag 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.
Boris_partys
Beiträge: 14
Registriert: 20. Februar 2012 06:22

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

Beitrag von Boris_partys »

Funzt. :D . Jetzt hab ich auch das kapiert. Da hab ich mir ja schon fast selbst die Antwort geliefert....Danke
Antworten