C++ Einen Buchstaben zurückkehren



  • Hey Leute,

    Ich mache gerade einen Taschenrechner mit _getch() und wollte, dass man bei der Eingabe auch Buchstaben loeschen kann. 😕
    Es gibt ja die Funktion

    cout << "\r";
    

    aber da kehrt man nur an den Zeilenanfang zurück
    Gibt es diese Funktion auch mit einem Buchstaben, damit ich das Problem so lösen kann:

    int Eingabe = _getch();
    
    if(Eingabe == 8)
        cout << /*Ein Buchstabe zurück*/ << " " << /*Ein Buchstabe zurück*/;
    

    Danke schon mal,
    ------------------------
    MfG Bubi 😉



  • _getch() und der ganze Rest aus <conio.h> ist kein Standard C++. Warum willst Du Dir das überhaupt zu Fuß antun anstatt die iostreams zu verwenden?

    #include <conio.h>
    
    constexpr char bs = '\b'; // backspace
    
    int main()
    {
    	int ch;
    
    	while ((ch = _getche(), ch != '\r') {
    		if (ch == bs) {
    			_putch(' ');
    			_putch(bs);
    		}
    
    	}
    }
    


  • Nimm '\b' statt 8.

    Schau dir mal die Escape-Sequenzen an.
    Die Funktionieren aber nicht überall gleich.



  • Swordfish schrieb:

    _getch() und der ganze Rest aus <conio.h> ist kein Standard C++. Warum willst Du Dir das überhaupt zu Fuß antun anstatt die iostreams zu verwenden?

    Gibt es überhaupt istreams, die wie _getch () ohne Enter funktionieren?

    Aber danke hat funktioniert!, 😉
    MfG Bubi 😃



  • Bubiluminati schrieb:

    Gibt es überhaupt iostreams, die wie _getch () ohne Enter funktionieren?

    Nein. Wenn das bei Dir so sein muss ...



  • Ja eigentlich schon
    Wie soll ich bei einem Tachenrechner sonst erkennen, wann ein Rechenzeichen eingegeben wird
    _________________
    LG Bubi



  • #include <iostream>
    
    int main()
    {
    	double a, b;
    	char op;
    
    	std::cin >> a >> op >> b;
    	std::cout << "Operand 1: " << a << "\nOperand 2: " << b << "\nOperation: " << op << "\n\n";
    }
    


  • Swordfish schrieb:

    #include <iostream>
    
    int main()
    {
    	double a, b;
    	char op;
    
    	std::cin >> a >> op >> b;
    	std::cout << "Operand 1: " << a << "\nOperand 2: " << b << "\nOperation: " << op << "\n\n";
    }
    

    Das Problem dabei wäre, dass ich mehrere Zeichen hintereinander einlesen möchte aber das nur optional.
    Bei deiner Lösung wartet cin dabei auf alle Eingaben

    LG
    Bubi 😃


Log in to reply