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?
Solucionado, solo hay que
Solucionado, solo hay que abrirlo en modo binario:
Archivo.open(Nombre.c_str(),ios::binary);
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
Mi creacciónes particulares:
http://www.scenebeta.com/noticia/la-serpiente
http://www.scenebeta.com/node/22535
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