Autor
|
Tema: c++ buffer (Leído 2,687 veces)
|
user-marcos
Desconectado
Mensajes: 159
|
Hola, estoy haciendo un programa de consola en c++, el cuerpo del programa tiene un menú switch donde dirige a los distintos módulos, resulta que 1 de cada 50 veces donde se pide la entrada del menú, entra un valor basura, y el valor introducido pasa como entrada del siguiente cin>>. supongo que esto se debe al buffer, he puesto el l_Buffer() antes del cin>> del menú, pero como en las otras 49 veces no tiene valor basura, el programa se queda en bucle. ¿Hay alguna manera de controlar si el buffer tiene algún valor para eliminarlo?
Un saludo.
void l_Buffer() { while(cin.get() != '\n'); }
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
No tengo constancia de valores basura usando cin, sin más. ¿Qué método usas para leer con cin?
|
|
|
En línea
|
|
|
|
user-marcos
Desconectado
Mensajes: 159
|
No tengo constancia de valores basura usando cin, sin más. ¿Qué método usas para leer con cin?
Uso esto getline(cin, name, '\n'); Tampoco estoy convencido que la culpa sea del buffer, pero no se me ocurre otra cosa.
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
No ha de haber ningún problema. Ponme un ejemplod e un código que te de problema, y lo miro.
|
|
|
En línea
|
|
|
|
user-marcos
Desconectado
Mensajes: 159
|
No ha de haber ningún problema. Ponme un ejemplod e un código que te de problema, y lo miro.
El ejercicio es una práctica de clase, no puedo poner el código, porqué cuando lo subimos para hacer las correcciones tienen detector de plagio, si quieres te lo paso por privado con el autocorrector.
|
|
|
En línea
|
|
|
|
ivancea96
Desconectado
Mensajes: 3.412
ASMático
|
Me basta con que simules la situación con otro código Solo es para ver por qué da ese fallo.
|
|
|
En línea
|
|
|
|
marlboreano
Desconectado
Mensajes: 23
|
Hola user-marcos. Fijate si en el código leen alguna línea con el operador de redirección de flujo >> y LUEGO con getline. De ser así, deberías utilizar "cin.ignore()" luego de cada lectura con cin, para que no te de más problemas (cin lee caracter a caracter, también los caracteres de fin de línea y demás, lo deja en el buffer de entrada y se lo come la funcion getline).
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Buffer
Software
|
Shadow
|
1
|
3,819
|
4 Septiembre 2002, 20:26 pm
por Bres
|
|
|
buffer
Software
|
Yoshi
|
1
|
1,757
|
20 Junio 2003, 16:34 pm
por Cobac
|
|
|
Buffer under run
Software
|
Zakt
|
2
|
1,834
|
22 Diciembre 2003, 16:32 pm
por dark_headhunter
|
|
|
Consultas SQL para saber key Buffer en MyISAM y Buffer Pol en InnoDB
Bases de Datos
|
el-brujo
|
0
|
3,668
|
23 Mayo 2012, 16:34 pm
por el-brujo
|
|
|
Problema, return address buffer overflow (Cómo calcular la dirección del buffer?
Bugs y Exploits
|
Debci
|
6
|
7,750
|
7 Abril 2014, 20:00 pm
por soez
|
|