anfänger frage c++

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Headshot, 22. September 2008 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 22. September 2008
    hi leute,

    also ich habe mir vor kurzem ein tolles buch namens : "c++ objektorientiertes programmieren von anfang an" gekauft. bei amazon stand es wäre ganz gut weil die beispiele halt direkt klappen würden.

    so ich zeig euch mal eins:

    Code:
    // bsp10002.cpp
    #include <iostream>
    using namespace std;
    
    int main() {
     int w;
     cout << "\nBitte den Wert von 'w' eingeben: ";
     cin >> w;
     cout << "Der Wert von 'w' mal 2 ist " <<w*2;
     return 0;
    }

    verstanden habe ich das soweit. es öffnet sich auch ein fenster und ich kann einen wert für w eingeben. doch sobald ich dann enter drücke stürzt es ab. hab absolut keine ahnung woran das liegen könnte. habe mal das original-beispiel runtergeladen(Helmut Erlenk) aber selbst das stürzt ab.

    hat jemand eine idee woran das liegen könnte?


    schonmal vielen dank für eure antworten und wie gesagt fang grade erst an mich damit zu beschäftigen;-)


    grüße
     
  2. 22. September 2008
    AW: anfänger frage c++

    mach mal nen " << endl; " hinter w*2 (ohne anführzeichen^^)

    hatten wir in der schule mal probleme mit
     
  3. 22. September 2008
    AW: anfänger frage c++

    Das Verhalten welches du da beschreibst ist absolut korrekt für den Code !

    Geh die einzelnen Schritte mal durch... das Programm startet, es fordert dich auf eine Eingabe zu machen, und gibt die Eingabe anschließen in dem Text aus. Danach ist die Funktion zu ende und es folgt ein return 0.
    Danach ist das Programm beendet und schließt sich.

    --> Absolut korrekt !

    In deinem Code steht nichts welches dem Programm sagt das es nachdem es die Ausgabe gemacht hat, warten soll bis der dumme Typ vorm Bildschirm gelesen hat und zufrieden ist.
    Nein, woher soll er das denn auch wissen??

    Du musst quasi einen Weg finden, wie du dem Programm sagen kannst, dass es nach der Ausgabe auf irgendetwas "warten" soll und sich nicht sofort von allein beendet.

    Das erreichts du zum Beispiel indem du als letzen Schritt noch eine Eingabeaufforderung in Form von einem simplen cin >> x; machst.

    Das Programm wartet dann darauf das du eine Eingabe machst, das Drücken der Enter Taste genügt dann schon.

    Beispiel

    Code:
    #include <iostream>
    using namespace std;
    
    int main() {
    int w;
    cout << "\nBitte den Wert von 'w' eingeben: ";
    cin >> w;
    cout << "Der Wert von 'w' mal 2 ist " <<w*2;
    cout << "Drücken Sie nun eine beliebige (numerische) Taste um das Fenster zu schließen";
    cin >> w;
    return 0;
    }
    
    Allerdings gibt es meiner Meinung nach eine bessere Lösung als ein cin >> x; zu nutzen, da wie du vielleicht merken wirst das Programm einen Error erzeugt, bzw abstürtz wenn man als letze Eingabe zum Beispiel ein "u" drückt, weil cin >> an dieser Stelle nunmal eine Zahl erwartet.

    Um das "Problem" zu umgehen kannst du die vielseits beliebte Funktion getch(); nutzen.
    Dann kannst du wirklich eine beliebige Taste drücken.
    (Hinweis: getch() ist in der <conio.h> Bibliothek enthalten !)

    Ansonsten gibts da noch den Befehl system("pause"); welcher eine Meldung alá "Drücken Sie eine belibige Taste um das Programm zu beenden" ausgibt.

    Allerdings funktioniert die system("pause") Variante nicht bei jedem Compiler... (Glaube in Borland bzw Turbo C++ gehts aber in VisualStudio nicht... / Kann mich aber auch gerade täuschen (ist schon spät xD) )


    Und noch viel Glück und vorallem Spaß bei C++ ;-)


    MfG
    WhiteGloves
     
  4. 22. September 2008
    AW: anfänger frage c++

    Würd spontan sagen vor das return 0; system("PAUSE"); schreiben. Etwa so :
    Code:
    #include <iostream>
    using namespace std;
    
    int main() {
    int w;
    cout << "\nBitte den Wert von 'w' eingeben: ";
    cin >> w;
    cout << "Der Wert von 'w' mal 2 ist " <<w*2;
    cout << "Drücken Sie nun eine beliebige (numerische) Taste um das Fenster zu schließen";
    cin >> w;
    [I][COLOR="DarkGreen"]system("PAUSE");[/COLOR][/I]
    return 0;
    }
     
  5. 23. September 2008
    AW: anfänger frage c++

    system("Pause"); ist böse

    ein cin.get(); reicht auch aus, und das ohne irgendwelche zusätzlichen header (conio.h) bzw. plattformspezifischen code.
     
  6. 23. September 2008
    AW: anfänger frage c++

    also ich hab anfangs auch immer cin.get() verwendet aber das Programm hat sich trotzdem beendet....(wenn in dem Programm ne variale ausgegeben wurde (cout << a....))

    ich empfehle dir daher doch conio.h zu includen und mithilfe von _getch() auf einen tastendruck zu warten

    MFG
    xXsoureXx
     
  7. 23. September 2008
    AW: anfänger frage c++

    hey,

    also erstmal vielen dank für die vielen antworten. habe jetzt einfach wie vorgeschlagen cin >>w;
    verwendet. dann seh ich das ergebnis und es funktioniert wunderbar

    grüße
     
  8. 23. September 2008
    AW: anfänger frage c++

    Noch eine kurze Anmerkung, bevor der Thread geschlossen wird:

    Du könntest dein Programm auch als "Release" compilieren und starten (und nicht als "Debug"). Dann wäre am Schluss (immer) die Aufforderung, eine Taste zu drücken.
    Aber zum Debuggen ist das natürlich

    Nur dass du auch diese Methode kennst.


    - - -
     
  9. 25. September 2008
    AW: anfänger frage c++

    hi,

    also hier steht der befehl cout dient der ausgabe von dateien und cin der eingabe. müsste ich dann von der logik nicht cout benutzen statt cin?aber mit cout funktioniert das nicht;-)


    grüße
     
  10. 25. September 2008
    AW: anfänger frage c++

    Wieso das denn? ^^

    Wenn das Programm auf eine "Eingabe" Warten soll, dann ist wohl cin die richtige Wahl
     
  11. 25. September 2008
    AW: anfänger frage c++

    ja hab nochmal drüber nachgedacht und bin genau zu deiner antwort gekommen;-)trotzdem danke war ja ne schnelle antwort

    grüße
     
  12. 25. September 2008
    AW: anfänger frage c++

    [X] Erledigt!?

    ~closed~

    Mfg,

    Kolazomai
     
  13. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.