Patrocinadores

Anuncios Google

Problema con EOF

Estoy intentando leer un rar, el problema es que en la cabecera de los .rar está el hexadecimal 1A y dicho hexadecimal me lo detecta como final de fichero:

#include <cstdlib>
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    ifstream Archivo;
    string Nombre;
    char Leer;
 
    cout<<"Introduzca nombre de archivo: ";
   cin>>Nombre;
    //getline(Archivo,Nombre);
  // getline(Archivo,Nombre);
    Archivo.open(Nombre.c_str());
 
    if (Archivo)
    {
 
 
      do
      {          
       Archivo>>Leer;  
       cout<<"Leyendo el valor: "<<Leer<<endl; 
 
        } while (Leer != 116 && !Archivo.eof()); 
 
        if (!Archivo.eof())
         cout<<"Conseguido! <3"<<endl;
        else
            cout<<":( te odio"<<endl; 
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}

 

 

Justo después del caracter ! está el hexadecimal 1A, y automaticamente me detecta final de fichero y me cierra.

 

Alguna idea para poder acceder al resto del archivo rar?


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Solucionado, solo hay que

Solucionado, solo hay que abrirlo en modo binario:

 

Archivo.open(Nombre.c_str(),ios::binary);

Imagen de eglomer

Así a bote pronto, y teniendo

Así a bote pronto, y teniendo en cuenta las horas que son, se me ocurre que calcules la cantidad de caracteres que tiene el archivo y que, hasta que no alcance ese número, que no deje de leer.

 

Por cierto, me dijiste que tu DS murió, ¿cierto?


Proyectos en curso

El Taller de Eglomer

Eso ya lo probé, le quité el

Eso ya lo probé, le quité el EOF al while y no avanzaba, se me quedaba siempre en el mismo punto: '!'

 

La ds no es que se me rompiera, es que perdí el cargador y no me he molestado en comprarlo xD

Imagen de Almamu

Así a bote pronto se me

Así a bote pronto no se me ocurre como arreglarlo, se me ocurre que uses stdio para esto, con sus funciones FILE

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.