Simulación de la tecla BackSpace(en ASCII:CHR(8)) para editar una cadena de caracteres en C++

Páginas: (1/1)

Soufian:

Hola a todos.
Me estoy preparando para el examen programación 1 del primer curso de ingeniería de telecomunicaciones, y de repente me encuentro con un ejercicio que ni si quiera llego a entenderlo 100X100!!
El ejercicio dice "Diseña un algoritmo que permita leer una cadena de caracteres, permitiendo la edición de la misma a través del uso de la tecla BackSpace(en ASCII : CHR(8))"

Lo que llego a entender del ejercicio es que tengo que simular la tecla Backspace encontrada en la parte de arriba del teclado numérico para poder borrar carácter por carácter la cadena introducida por teclado antes de darle al (ENTER), dicho de otra forma, que la tecla BackSpace juegue el papel de la tecla borrar (para poder editar la cadena leída por teclado antes de darle al ENTER).
Es correcto lo que he entendido del ejercicio??
Por favor si alguien me pueda ayudar en este tema se lo agradecería.
Un saludo.
Codigo inicial para leer una cadena en c++ (Sin ningun avance hacia la resolución del ejercicio)

#include<iostream>
#include<string>

using namespace std;

int main(){

    string cadena;
    getline(cin, cadena);
    cout<<cadena<<endl;

  return 0;
}



TickTack:

Yo lo entendí como tú lo entendiste.

Aquí te muestro un enfoque básico:

Código:
--
#include<iostream>
#include<string>

using namespace std;

int main() {
    string cadena;
    char caracter;
   
    cout << "Introduce una cadena de caracteres y presiona Enter:\n";
   
    while (true) {
        caracter = cin.get();
       
        if (caracter == '\n') {
            break; // Si se presiona Enter, salimos del bucle
        } else if (caracter == '\b') {
            if (!cadena.empty()) {
                cout << "\b \b"; // Simulamos el efecto de borrar un caracter en la consola
                cadena.pop_back(); // Eliminamos el último caracter de la cadena
            }
        } else {
            cadena += caracter; // Agregamos el caracter a la cadena
            cout << caracter; // Mostramos el caracter en la consola
        }
    }
   
    cout << endl << "Cadena final: " << cadena << endl;
   
    return 0;
}

--


Páginas: (1/1)