kai: Einen Wert per Kommandozeile an eine C Datei übergeben..

hallo,

ich bin ein echter c++ newbee aber finde mich auf grund
langer php kenntniss ganz gut zu recht.

jetzt stell ich mir die frage ob , und wenn ja , wie man
aus der kommandozeile einen wert an ein c script übergiebt.
das muss ja eine verwante funktion zu std::cin sein .. oder ?`
oder geht es gar nicht ?

z.B. #: meinScript.c wert1 wert2

geht sowas überhaupt ?

vielen dank.

kai

  1. Hallo Kai,

    ich bin ein echter c++ newbee aber finde mich auf grund
    langer php kenntniss ganz gut zu recht.

    Das ist schön. Es gibt ja auch eine Menge Parallelen zwischen diesen beiden Sprachen - aber eben auch einen gravierenden Unterschied.

    jetzt stell ich mir die frage ob , und wenn ja , wie man
    aus der kommandozeile einen wert an ein c script übergiebt.
    das muss ja eine verwante funktion zu std::cin sein .. oder ?

    Nein, die Parameter, die du deinem Programm übergibst, kannst du in C/C++ über das Array char **argv abfragen (argv[0] enthält dabei den Namen und Pfad der Programmdatei selbst), int argc gibt dir an, wieviele Parameter (einschließlich des Programmnamens selbst) übergeben wurden.

    z.B. #: meinScript.c wert1 wert2

    Und hier kommt der große Unterschied: C-Programme werden normalerweise compiliert und werden nicht direkt aufgerufen. Das fertig übersetzte und ausführbare Programm liegt dann direkt in Maschinensprache vor und trägt üblicherweise nicht mehr die Endung ".c".

    geht sowas überhaupt ?

    Aber klar - ein Großteil der professionellen Programme ist in C/C++ geschrieben, und da geht's ja auch!

    Schönen Abend noch,

    Martin

    --
    Success should be measured not so much by the position that one has reached in life,
    but by the obstacles one has overcome while trying to succeed.
    1. hallo martin,

      vielen vielen dank !
      nur selten bekommt man so schnell eine so kompetente
      und verständliche antwort.!

      nochmal danke. !

      kai

  2. Moin!

    ich bin ein echter c++ newbee aber finde mich auf grund
    langer php kenntniss ganz gut zu recht.

    Die Syntax ist ja recht ähnlich, wenn auch C++ universeller ist, was die Anwendungszwecke aber auch die Fehlerquellen anbetrifft.

    jetzt stell ich mir die frage ob , und wenn ja , wie man
    aus der kommandozeile einen wert an ein c script übergiebt.

    C-Script? Ich habe mal irgendwo gelesen, dass es so etwas auch geben soll, aber normalerweise werden C-/C++-Programme kompiliert, d.h. in eine ausführbare Binärdatei für deine Plattform übersetzt. Beim Starten deines Programmes wird die Funktion main() aufgerufen, die du im Quellcode mit Leben füllen musst. main() wird sinnvollerweise auf eine der folgenden zwei Arten deklariert:

      
    int main();    // Dein Programm erwartet keine Parameter  
    
    
      
    int main(int argc, char *argv[]); // Dein Programm bekommt Parameter  
    // argc enthält die Anzahl der Elemente in argv  
    // argv ist der Argumentvektor, ein C-Style Array.  
    // argv[0] enthält den Namen des Programmes  
    
    

    das muss ja eine verwante funktion zu std::cin sein .. oder ?`
    oder geht es gar nicht ?

    In dieser Hinsicht (Parameter-Handling in main())waren die C++-Designer vielleicht ein wenig inkonsequent, andererseits ist C++ damit zu C kompatibel.

    z.B. #: meinScript.c wert1 wert2

    geht sowas überhaupt ?

    Ich mache das immer so:

    make meinProgramm

    ./meinProgramm wert1 wert2

    Viele Grüße,
    Robert