sinn des programms? anfängerfrage



  • Könnt ihr mir helfen das zu verstehen und das programm "ausführbar" zu machen?
    Denn bis jetzt geht es nur auf und wartet auf meine eingabe. Danach will ich irgendwas eingeben und sofort schließt es wieder(was sicher das

    getch();
    

    ist), das kann ja nicht der sinn des programms sein...
    und bitte nicht wegen dem alten standard meckern, konnte meinem compiler noch nicht beibringen, das er den neuen akzeptiert.

    #include <iostream.h>
    #include <stdlib.h>
    #include <string.h>
    #include <conio.h>
    
    int main( int argc, char * argv[], char * envp[] )
    {
      double dZahl;
    
      if ( argc > 2 )
      {
        cout << "Bitte nur eine Zahl uebergeben.";
        cout << " (z.B. Quadrat 34)\n";
      }
      else if ( argc < 2 )
      {
        cout << "Bitte die Zahl als Argument mit angeben.";
        cout << " (z.B. Quadrat 34)\n";
      }
      else
      {
        if ( strcmp(argv[1], "?" ) == 0 )
        {
          cout << "Dieses Programm berechnet das Quadrat der";
          cout << "uebergebenen Zahl. (z.B. Quadrat 34)\n\n";
          cout << "Folgende Daten wurden dem Programm uebergeben:\n";
          cout << "Anzahl der Uebergabeparameter (argc): ";
          cout << argc << "\n";
          cout << "Erster Parameter (argv[0]): ";
          cout << argv[0] << " (Programmname)\n";
          cout << "Zweiter Parameter (argv[1]): ";
          cout << argv[1] << " (1. Argument)\n";
        }
        else
        {
          dZahl = atof( argv[1] );
          cout << "Das Quadrat von " << dZahl;
          cout << " ist " << dZahl * dZahl;
        }
      }
    getch();
      return 0;
    }
    


  • nile schrieb:

    Könnt ihr mir helfen das zu verstehen und das programm "ausführbar" zu machen?

    Es sieht ausführbar aus, nicht? Es quadriert Zahlen, die man dem Programm als Parameter (auf der Konsole) mitgibt.

    und bitte nicht wegen dem alten standard meckern, konnte meinem compiler noch nicht beibringen, das er den neuen akzeptiert.

    Mit was compilierst du bitte? Das unterstützt sogar der kreuzalte VC 6.0.

    MfG

    GPC



  • und wie erfolgt die eingabe der parameter?
    auch über cin? oder geht das ganz anders?
    ich compiliere mit der dev c++ beta 4.992
    ich habe auch schon die neue mingw32 (3.1.0.1) hinzugefügt, wie es hier in einem faq erklärt wurde...
    es kommt aber trotzdem immer:

    conio: no such file or directory.



  • nile schrieb:

    und wie erfolgt die eingabe der parameter?

    Die gibst du mit dem Aufruf des Programms mit:

    Quadrat 5
    

    Ausgabe wird (olé olé) 25 sein.

    ich compiliere mit der dev c++ beta 4.992
    ich habe auch schon die neue mingw32 (3.1.0.1) hinzugefügt, wie es hier in einem faq erklärt wurde...
    es kommt aber trotzdem immer:

    conio: no such file or directory.

    Um, ja. conio ist auch ein etwas unportabler Header (den musst du übrigens noch mit conio.h inkludieren, da kein standard C++), du findest in der FAQ des Konsolen-Forums einige gute Alternativen, um das Schließen der Konsole zu verhindern.

    Ansonsten kannst du beruhigt

    #include <iostream>
    //...
    
    using namespace std;
    
    //Der rest
    

    schreiben.

    MfG

    GPC



  • ok, das mit dem sinn ist jetzt klar...
    es war nur ein teilprogramm...

    alles klar....wusste nich, das es sich nicht mit im standard befindet..

    eine frage noch, wozu dient das?

    using namespace std;
    

    (schließlich gehts auch ohne)



  • nile schrieb:

    eine frage noch, wozu dient das?

    using namespace std;
    

    Das bewahrt dich davor, vor jedes Mitglied der Standardbibliothek (die im Namensraum std liegt), ein std:: zu packen, also so z.B.:

    std::cout<<"Blub"<<std::endl
    

    Mit "using namespace std" kannst du dir das std:: sparen.

    (schließlich gehts auch ohne)

    Nicht, wenn du #include <iostream> schreibst. Wenn du die alten Header inkludierst, geht's ohne using, aber die neuen brauchen using, denn sonst findet der Compiler ja das ganze Zeug nicht 🙂

    MfG

    GPC



  • ok, vielen dank für die schnellen antworten...


Anmelden zum Antworten