C++

Dieses Thema C++ im Forum "Webentwicklung, Hosting & Programmierung" wurde erstellt von Frazze, 8. Jan. 2006.

Thema: C++ Hallo, ich habe mir vor kurzem ein Buch über C++ gekauft weil ich das lernen möchte. In dem Buch werden die...

  1. Hallo,

    ich habe mir vor kurzem ein Buch über C++ gekauft weil ich das lernen möchte.
    In dem Buch werden die Programme (ich nehm mal als Bsp. das Hello World!) so geschrieben:

    include <iostream>

    using namespace std;

    int main()
    {
    cout << Hello World!
    }

    Als ich diesen Code komilliert und dann die .exe ausgeführ habe hat sich das Fenster so schnell geöffnet und wieder geschlossen das man überhapt nichts lesen konte von dem Hello World.
    In einem Online-Tuturial habe ichd as ganze dann mit einem cin.get(); am Schluss gefunden, mit cin.get(); bleibt das Fenster ja geöffnt bis man Enter drückt, aber in dem Buck gibt es kein einziges Programm das cin.get(); enthält.
    Jetzt frage ich mich ob das ein durchgehender Fehler im Buch ist, oder ob es auch ohne cin.get(); gehen müsste, und wenn, wie? Was müsste ich dann machen/ändern?

    MfG Frazze
     
  2. Nö, ist gar kein Fehler ;)

    Wenn du die *.exe von der Eingabeaufforderung aus öffnest, bleibt das Fenster auch offen ^-^

    Wirst du so oder ähnlich in jedem Buch finden :)

    edit:
    sollte aber auch zu 100% im Buch stehen, vorzugsweise ziemlich am Anfang ;)
     
  3. Danke erst mal für die schnelle Antwort.
    Habe im Buch nachgeschaut, da steht echt nichts davon :-\

    Und wie öffnet man eine *.exe von der Eingabeaufforderung? :-[

    MfG
     
  4. wenn du im richtigen Verzeichnis bist, genügt der name der exe, z.B:

    hallo_welt [RETURN]
    oder
    hallo_welt.exe [RETURN]

    wenn du nicht im richtigen Verzeichnis bist, solltest du dorthin wechseln, oder den Pfad vor die *.exe schreiben

    z.B:

    C:\Testprogramme\hallo_welt.exe [RETURN]
     
  5. Aha, jetzt versteh ich :D
    Danke.
     
  6. also ,

    das ist KEIN Fehler !

    Die Programme am Anfang sind doch eh alle ziemlich sinnfrei oder ?

    aber der Lerneffekt ist da!

    aber mit
    Code:
    cin.get() 
    kannst du wie du es schon gepostet hast bis zum Enter-Druck offen halten....

    ich lerne ja auch noch... (mit Borland C++)


    Ach ich hab auch noch eine Frage für die ich keinen eigen thread aufmachen will:

    ich bin es von QBasic gewöht , dass man mit GOTO ganz einfach einfach durch das Programm hin und her springen kann , nun ist C++ aber eine Programmiersprache die ohne GOTO auskommt .Sondern C++ arbeitet mit Functionen .

    So jetzt ein Programm wie ich es in Basic geschrieben hätte :

    Code:
    10 CLS
    20 PRINT Hallo1
    30 PRINT Hallo2
    40 END
    So nun will ich ,dass Hallo2 als erstes kommt :

    Code:
    10 CLS
    20 GOTO 50
    30 PRINT Hallo1
    40 GOTO 70
    50 PRINT Hallo2
    60 GOTO 30
    70 END
    
    SO nun erst Hallo1 aber in C++

    Code:
    
    Bla Bla Bla...
    
    cout << Hallo1 << endl;
    cout << Hallo2 ;
    
    ...Bla Bla Bla
    
    Wie kann ich jetzt Hallo2 zu erst zeigen ohne ,dass ich einfach das hier mache :

    Code:
    cout << Hallo2 << endl;
    cout << Hallo1;
     
  7. Also ich würde das so machen (auchw enn ich noch ein Anfänger bin) ;)

    Code:
    #include <iostream>
    
    using namespace std;
    
    void hello1(void)
    {
      cout << Hello World 1. <<endl;
    }
    
    void hello2(void)
    {
      cout << Hello World 2. <<endl;
    }
    
    int main()
    {
      hello2();
      hello1();
    }      

    MfG Frazze
     
  8. Code:
    #include <iostream>
    
    using namespace std;
    
    void taste1(void)
    {
    cout << ! Herzlichen Glückwusch ! Sie haben 1 gedrückt . << endl;
    }
    
    void catherin(void)
    {
    cout << Sie haben leider nicht 1 gedrückt << endl;
    }
    
    int main()
    {
    cout <<Versuchen sie es die 1 zu drücken, dies könnte sehr schwierig werden^^ << endl;
    
    long a
    cin >> a;
    
    if (a == 1)
    {
    taste1();
    }
    
    catherin();
    
    
    }
    

    würde das hier funktionieren ?
     
  9. Ja, ich denke das würde funktionieren wenn du hinter
    Code:
    long a
    ein
    Code:
    ;
    machst^^ ;D
     
  10. Ich wollte nich noch einen Tread aufmachen, deshlab stelle ich meine Frage (nochmal) hier rein.
    Ich hoffe es hat jemand Lust sich den ganzen Code überhaupt anzuschauen.

    Code:
    #include <iostream>
    
    using namespace std;
    
    void volumen1(void)
    {
      long double v, r, h, pi = 3.14159265358979323846;
      
      cout << Volumen nach der Formel V = r^2*h*pi berechen.\n <<endl;
      cout << r(Radius) eingeben. <<endl;
      cin >> r;
      cout << h(Hoehe) eingeben. <<endl;
      cin >> h;
      
      v=(r*r)*h*pi;
      
      cout << Das Volumen betraegt  << v <<  m^3. <<endl;
      cout << __________________________________________________________________ <<endl;
      
      cin.get();
      cin.get();
    }  
    
    void arbeit2(void)
    {
      long double w, f, s;
      
      cout << Arbeit(allgemein) nach der Formel W = F*s berechnen.\n <<endl;
      cout << F(Kraft) in N eingeben. <<endl;
      cin >> f;
      cout << s(Weg) in m eingeben. <<endl;
      cin >> s;
      
      w=f*s;
      
      cout << Die Kraft betraegt  << w <<  N. <<endl;
      cout << __________________________________________________________________ <<endl;
      
      cin.get();
      cin.get();
    }
    
    void elektrischeleistung3(void)
    {
      long double p, u, i;
      
      cout << Elektrische Leistung nach der Formel P = U*I berechnen.\n <<endl;
      cout << U(Spannung) in V eingeben. <<endl;
      cin >> u;
      cout << I(Stromstaerke) in A eingeben. <<endl;
      cin >> i;
      
      p=u*i;
      
      cout << Die elektrische Leistung betraegt  << p <<  J/s. <<endl;
      cout << __________________________________________________________________ <<endl;
      
      cin.get();
      cin.get();
    }
    
    void elektrischerwiederstand4(void)
    {
      long double r, u, i;
      
      cout << Elektrischer Wiederstand nach der Formel R = U/I berechnen.\n <<endl;
      cout << U(Spannung) in V eingeben. <<endl;
      cin >> u;
      cout << I(Stromstaerke) in A eingeben. <<endl;
      cin >> i;
      
      r=u*i;
      
      cout << Der elektrische Wiederstand betraegt  << r <<  Ohm. <<endl;
      cout << __________________________________________________________________ <<endl;
      
      cin.get();
      cin.get();
    }
    
    void elektrischearbeit5(void)
    {
      long double w, u, i, t;
      
      cout << Elektrische Arbeit nach der Formel P = U*I*t berechnen.\n <<endl;
      cout << U(Spannung) in V eingeben. <<endl;
      cin >> u;
      cout << I(Stromstaerke) in A eingeben. <<endl;
      cin >> i;
      cout << t(Zeit) in s angeben. <<endl;
      cin >> t;
      
      w=u*i*t;
      
      cout << Die elektrische Arbeit betraegt  << w <<  J. <<endl;
      cout << __________________________________________________________________ <<endl;
      
      cin.get();
      cin.get();
    }
    
    void prozent6(void)
    {
      long double P, g, p;
      
      cout << Prozent nach der Formel P = (g*p)/100 berechnen.\n <<endl;
      cout << G(Grundwert) eingeben. <<endl;
      cin >> g;
      cout << (p)Prozentsatz in % eingeben. <<endl;
      cin >> p;
        
      P = (g*p)/100;
        
      cout << Das Ergebnis betraegt  << P <<  . <<endl;
      cout << __________________________________________________________________ <<endl;
       
      cin.get();
      cin.get();
    }  
    
    
    int main()
    {
      cout << Das ist mein kleines (selber gemachtes) Formel-Rechen-Programm, ich  <<endl;
      cout << hoffe mal ihr kommt einiger Masen damit zurecht^^.\n <<endl;
      cout << Wenn jemand gerne ein paar weitere Formeln dabei haben moechte, so  <<endl;
      cout << kann er mich gerne anschreiben/ansprechen.\n <<endl;
      cout << __________________________________________________________________ <<endl;
      cout <<  Die 1 fuer Volumen.\n <<endl;
      cout <<  Die 2 fuer Arbeit(allgemein).\n <<endl;
      cout <<  Die 3 fuer elektrische Leistung.\n <<endl;
      cout <<  Die 4 fuer elektrischen Wiederstand.\n <<endl;
      cout <<  Die 5 fuer elektrische Arbeit.\n <<endl;
      cout <<  Die 6 fuer Prozentrechnung.\n <<endl;
      cout << __________________________________________________________________ <<endl;
      
      int zahl;
      cin >> zahl;
      
      if(zahl==1)
      {
        volumen1();
      }
      if(zahl==2)
      {
        arbeit2();
      }
      if(zahl==3)
      {
        elektrischeleistung3();
      }
      if(zahl==4);
      {
        elektrischerwiederstand4();
      }
      if(zahl==5)
      {
        elektrischearbeit5();
      }
      if(zahl==6)
      {
        prozent6();
      }
    
      
      cin.get();
      cin.get();
    }               
      
      
      


    So, erst mal bedanke ich mich bei dem, der das ganze durchgelesen hat. Thx. :)

    Jetzt mein Problem: Wenn ich das ganze ausführe, dann soll man ja mit den Zahlen die jeweilige Formel aufrufen, nun funktioniert dieses Verfahren nur bis zur Zahl 4, wenn man die Zahl 5 oder 6 eingibt, dann wird die Formel 4 ausgeführt und nicht die Formel 5 oder 6.
    Wenn ich jetzt aber z.B. 4 drücke und dann da mit der Formel rechne und dann enter drücke, dann springt das Programm gleich zu der Formel 6 und überspringt dabei Formel 5. ???

    Ich habe keine Ahnung warum das so ist, habe schon verschiedene Sachen ausprobiert, z.B. Funktionsnamen geändert, da der Compiler die Funktionsnamen ja nur bis zu einer bestimmen länge (Zeichenanzahl) vergleicht oder anstatt
    Code:
    if(zahl==5)
    Code:
    if((zahl>4)&&(zahl<6))
    geschrieben, was ja die selbe Wirkung wie zahl==5 haben müsste. Hat aber nichts geändert.

    Wäre echt nett wenn mir jemand auf die Sprünge helfen kann was da faul ist.


    MfG Frazze