elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  c++ buffer
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: c++ buffer  (Leído 2,359 veces)
user-marcos

Desconectado Desconectado

Mensajes: 159


Ver Perfil
c++ buffer
« en: 6 Marzo 2015, 21:30 pm »

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 Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: c++ buffer
« Respuesta #1 en: 6 Marzo 2015, 21:42 pm »

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 Desconectado

Mensajes: 159


Ver Perfil
Re: c++ buffer
« Respuesta #2 en: 6 Marzo 2015, 21:49 pm »

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 Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: c++ buffer
« Respuesta #3 en: 6 Marzo 2015, 22:01 pm »

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 Desconectado

Mensajes: 159


Ver Perfil
Re: c++ buffer
« Respuesta #4 en: 6 Marzo 2015, 22:07 pm »

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 Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: c++ buffer
« Respuesta #5 en: 6 Marzo 2015, 22:22 pm »

Me basta con que simules la situación con otro código :o
Solo es para ver por qué da ese fallo.
En línea

marlboreano

Desconectado Desconectado

Mensajes: 23



Ver Perfil
Re: c++ buffer
« Respuesta #6 en: 8 Marzo 2015, 20:49 pm »

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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Buffer
Software
Shadow 1 3,454 Último mensaje 4 Septiembre 2002, 20:26 pm
por Bres
buffer
Software
Yoshi 1 1,524 Último mensaje 20 Junio 2003, 16:34 pm
por Cobac
Buffer under run
Software
Zakt 2 1,586 Último mensaje 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,455 Último mensaje 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,352 Último mensaje 7 Abril 2014, 20:00 pm
por soez
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines