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

 

 


Tema destacado: Recopilación Tutoriales y Manuales Hacking, Seguridad, Privacidad, Hardware, etc


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error en tiempo de ejecución
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error en tiempo de ejecución  (Leído 1,340 veces)
antkk

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Error en tiempo de ejecución
« en: 29 Marzo 2015, 13:21 pm »

Buenas, tengo un problema en tiempo de ejecución de mi programa.

Voy a escribir aquí lo que me sucede cuando estoy ejecutando el programa:

esteganografia
1 - Ocultar
2 - Revelar
3 - Salir
Seleccione una opcion: 1
Introduzca la imagen de entrada: terminate called after throwing an instance of 'std::ios_base::failure'
  what():  basic_filebuf::underflow error reading the file
Abortado (`core' generado)[/i
]



Aquí el código:

while(seguir){

   cout << "esteganografia\n";
   cout << "1 - Ocultar\n";
   cout << "2 - Revelar\n";
   cout << "3 - Salir\n";
   cout << "Seleccione una opcion: ";
   cin >> opcion;

   switch(opcion){
      case 1:
         cout << "Introduzca la imagen de entrada: ";
         // Creo que aquí está el principal error ya que no me
                       // deja leer el nombre del archivo.
                       cin.getline(nombre_imagen,MAXNOMBRE);
         strcat(directorio,nombre_imagen);
         // Creo que el error se produce por el cin.getline...   
         if(origen.leerImagen(directorio)){
            cout << "\nImagen leida correctamente. ";
            cin.ignore();
            cout << "\nIntroduzca la imagen de salida: ";
            cin.getline(nombre_imagen,MAXNOMBRE);
         destino.crear(origen.filas(),origen.columnas());


He dejado dos comentarios para que sepáis a mi parecer donde están los errores. Un saludo





« Última modificación: 29 Marzo 2015, 13:26 pm por antkk » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re:
« Respuesta #1 en: 29 Marzo 2015, 14:41 pm »

Nombre_imagen es un char*, y MAX... es un entero?
Pon sus declaraciones.

También puedes usar getline(cin,string) para leer la entrada en una string.


En línea

antkk

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Error en tiempo de ejecución
« Respuesta #2 en: 29 Marzo 2015, 17:07 pm »

Creo que he encontrado el error. Después de introducir el 1 del menú de opciones y darle al enter el cin.getline(...) se traga el enter y da error. He introducido antes del cin.getline un cin.ignore()

Gracias de todas formas por tu comentario.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines