Leer archivos de acceso aleatorio con reinterpet_cast

Iniciado por patilanz, 15 Marzo 2014, 11:33 AM

0 Miembros y 1 Visitante están viendo este tema.

amchacon

Cita de: patilanz en 24 Marzo 2014, 20:32 PMHola lo probé pero al abrir el archivo con notepad me muestra el texto normal y corriente, así debería de ser en binario?
Por supuesto.

Las variables no deberías verlas, el texto sí.

Cita de: patilanz en 24 Marzo 2014, 20:32 PMY al probar lo que me dijiste para guardar un char[100] y un int probe esto:

Código (cpp) [Seleccionar]
fstream file("data.dat",ios::out | ios::binary);
name n;
char text[100]={"cosa"};
int numero=2;
file << text << ' ';
file.write((char*)&numero,sizeof(int));


Código (cpp) [Seleccionar]
fstream file("data.dat",ios::in | ios::binary);
name n;
char text[100];
int numero;
file >> text;
file.read((char*)&numero,sizeof(int));


El texto me lo hace bien pero el por ejemplo para 2 me devuelve 544 y para 54 13856 y no se porque?

Saludos
Pues la sintaxis es correcta.

Aunque yo lo haría con ifstream y ofstream. Sin poner ninguna opción
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

patilanz

Si no pones ninguna opción se te va el binario ?
Lo del numero puede ser por (char*)&numero ?? Es que debería de funcionar.

También probé con fstream i ofstream pero tampoco:

Código (cpp) [Seleccionar]
ifstream file("data.dat",ios::binary);
ofstream file("data.bat",ios::binary);


amchacon

Cita de: patilanz en 24 Marzo 2014, 22:12 PM
Si no pones ninguna opción se te va el binario ?
Yo solo sé que funciona, tanto en modo texto como en modo binario.

Cita de: patilanz en 24 Marzo 2014, 22:12 PMLo del numero puede ser por (char*)&numero ?? Es que debería de funcionar.
Nop, esa sintaxis es correcta.

Creo que el problema esque al leer el texto no se salta el espacio. Prueba a poner un file.ignore() para que se salte el espacio delimitador.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

patilanz

Si efectivamente era el espacio. Muchas gracias pero porque 2 era 544 a que numero corresponde ?