C/Visual C - Uso de ignore

 
Vista:

Uso de ignore

Publicado por peli (2 intervenciones) el 15/11/2002 21:29:15
Hola tengo un problemilla con las funciones de tipo kbhit(), getch() etc.. no para el programa pidiendo una tecla ni usando fflush(), entonces me sugirieron que utilizara ignore(100), pero no se como usarlo, ¿me podeis ayudar? Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Uso de `cin.ignore()` para manejar la entrada de teclado

Publicado por Alejandro (913 intervenciones) el 02/04/2025 23:13:37
Peli, para manejar la entrada de teclado en C++ y evitar problemas con funciones como `kbhit()` y `getch()`, puedes utilizar `cin.ignore()` para limpiar el buffer de entrada. Aquí te explico cómo hacerlo:

1. Entender `cin.ignore()`: La función `cin.ignore()` se utiliza para ignorar caracteres en el buffer de entrada. Puedes especificar cuántos caracteres ignorar y hasta qué delimitador. Por ejemplo, `cin.ignore(100, '\n')` ignorará hasta 100 caracteres o hasta que encuentre un salto de línea.

2. Ejemplo de uso: Si estás utilizando `getch()` o `kbhit()` y quieres asegurarte de que no haya caracteres sobrantes en el buffer, puedes hacer lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <conio.h> // Para getch() y kbhit()
 
int main() {
    std::cout << "Presiona una tecla para continuar..." << std::endl;
 
    // Esperar a que se presione una tecla
    while (!kbhit()) {
        // Aquí puedes hacer otras cosas si es necesario
    }
 
    // Leer la tecla presionada
    char tecla = getch();
 
    // Limpiar el buffer de entrada
    std::cin.ignore(100, '\n'); // Ignorar hasta 100 caracteres o hasta un salto de línea
 
    std::cout << "Has presionado: " << tecla << std::endl;
 
    return 0;
}

En este ejemplo, `cin.ignore(100, '\n')` se utiliza para asegurarse de que cualquier entrada sobrante en el buffer se ignore después de que se presiona una tecla. Esto es útil para evitar que entradas no deseadas interfieran con futuras lecturas de entrada.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar