cin funktioniert nicht



  • Hey Leute!

    Ich bin Anfänger und brauche schnell Hilfe bei meiner Programmieraufgabe. Wenn ich folgenden Code eingebe, berücksichtigt der Compiler nicht den letzten cin-Befehl. Ich weiß einfach nicht, wieso.

    [cpp]#include <iostream>
    #include <cmath>

    using namespace std;

    double Fkt (double x) {
    return x*x;
    }

    double Abl (double x) {
    return 2*x;
    }
    int main () {

    int Höchstwert; double Tol; double Startwert;
    cout << "Bitte geben Sie die maximale Anzahl von Iterationen an: " << endl;
    cin >> Höchstwert;
    cout << "Bitte geben Sie nun die Toleranzschwelle ein: " << endl;
    cin >> Tol;
    cout << "Bitte geben Sie nun den Startwert ein: " << endl;
    cin >> Startwert;
    return 0;
    }

    Danke schonmal!



  • beginner58 schrieb:

    [...] brauche schnell Hilfe bei meiner Programmieraufgabe.

    Brauch' schnell ein Packerl Marlboro!!!111elf

    beginner58 schrieb:

    [...] Wenn ich folgenden Code eingebe, berücksichtigt der Compiler nicht den letzten cin-Befehl. [...]

    Aha. Wie stellst du das fest? Bei mir tut alles was in deinem Code steht wie es soll ...



  • Swordfish schrieb:

    beginner58 schrieb:

    [...] Wenn ich folgenden Code eingebe, berücksichtigt der Compiler nicht den letzten cin-Befehl. [...]

    Aha. Wie stellst du das fest? Bei mir tut alles was in deinem Code steht wie es soll ...

    Höchstwahrscheinlich weil du eine IDE hast, die die Konsole nach Programmende noch offenhält.

    @TE: Automatisches Schließen verhindern



  • Nach dem cout-Befehl bricht er ab und ich habe nicht die Möglichkeit, eine Eingabe zu machen.
    Das ist doch komisch, oder? Aber es gibt auch keine Fehlermeldung...



  • @h4x0r: Jetzt denkst nochmal ganz scharf über die Frage des OPs und meine Antwort nach, und dann nochmal, und dann nochmal ... solange, bis die das Licht aufgeht, warum du in diesem Thread vor dem OP nicht mehr postest, h4x0r.

    beginner58 schrieb:

    Nach dem cout-Befehl bricht er ab und ich habe nicht die Möglichkeit, eine Eingabe zu machen.
    Das ist doch komisch, oder? Aber es gibt auch keine Fehlermeldung...

    In deinem Code steht dreimal cout .
    Siehst du die Ausgabe Bitte geben Sie die maximale Anzahl von Iterationen an: ?
    Kannst du für Hoechstwert (umlaute in Bezeichnern ist nicht) etwas eingeben und [Enter] drücken?
    Siehst du die Ausgabe Bitte geben Sie nun die Toleranzschwelle ein: ?
    Kannst du für Tol etwas eingeben und [Enter] drücken?
    Siehst du die Ausgabe Bitte geben Sie nun den Startwert ein: ?
    Kannst du für Startwert etwas eingeben und [Enter] drücken?



  • Was bedeutet OP? 😕



  • Ja, ich sehe alles dreimal und kann zweimal die Eingabe machen, bis auf das letzte Mal für den Startwert.



  • beginner58 schrieb:

    Was bedeutet OP? 😕

    OP(er), erste Bedeutung.

    beginner58 schrieb:

    [...] bis auf das letzte Mal für den Startwert.

    ... weil das Fenster mit deinem Programm schon weg ist?



  • [löschmich]



  • Nein, ich benutze zum kompilieren Strg und F5. Da schließt sich das Fenster ja nicht gleich von selber.



  • so sieht der Quelltext doch besser aus 😉

    #include <iostream>
    #include <cmath>
    
    using namespace std;
    
    double Fkt (double x) {
    	return x*x;
    }
    
    double Abl (double x) {
    	return 2*x;
    }
    int main () {
    
    	int Höchstwert; double Tol; double Startwert;
    	cout << "Bitte geben Sie die maximale Anzahl von Iterationen an: " << endl;
    	cin >> Höchstwert;
    	cout << "Bitte geben Sie nun die Toleranzschwelle ein - statt Komma -> Punkt: " << endl;
    	cin >> Tol;
    	cout << "Bitte geben Sie nun den Startwert ein: " << endl;
    	cin >> Startwert;
    	return 0;
    }
    


  • Was geschieht nach der letzten Ausgabe denn, wenn Du eine Eingabe machen möchtest? Das Fenster bleibt anscheinend offen, okay. Geht der Cursor nicht weiter, wenn Du Tasten drückst oder wie?



  • beginner58 schrieb:

    Nein, ich benutze zum kompilieren Strg und F5. Da schließt sich das Fenster ja nicht gleich von selber.

    Dann ist das wohl Hexenwerk. Das Programm so wie es da unten steht kann eigentlich nicht falsch laufen...

    ODER: Du gibst den zweiten Wert falsch ein. Dann wird das failbit in cin gesetzt und die dritte Extrahierung übersprungen.. nur eine Vermutung...



  • Das heißt, bevor du den dritten Wert eingeben kannst steht da schon "Press any key to continue..." (oder ähnliches auf Deutsch)?
    Was gibst du für die beiden vorhergehenden Werte ein?



  • War das zu gut versteckt?

    Gebt mal den 2. Wert in der deutschen Variante mit Komma ein ...



  • Könnte es etwa sein das du 3,14 statt 3.14 eingibst ?



  • f.-th. schrieb:

    War das zu gut versteckt?

    Ja 😃

    f.-th. schrieb:

    Gebt mal den 2. Wert in der deutschen Variante mit Komma ein ...

    Musst Du alles verraten? War doch mit dem OP schon sooo schön auf der Spur dorthin 😉



  • Aaaah, ja genau, ich habe beim 2. Wert immer ein Komma statt einem Punkt benutzt. Da wär ich nie drauf gekommen, dass es daran liegt. Vielen vielen Dank für die Hilfe!!!


Anmelden zum Antworten