Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Error raro con archivos binarios

Estas en el tema de Error raro con archivos binarios en el foro de C/C++ en Foros del Web. Hola en este codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C++: Ver original #include "stdafx.h" #include <iostream> #include <fstream> #include <string> using namespace std ;   class name ...
  #1 (permalink)  
Antiguo 13/03/2014, 14:40
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Error raro con archivos binarios

Hola en este codigo:
Código C++:
Ver original
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <fstream>
  4. #include <string>
  5. using namespace std;
  6.  
  7. class name{
  8.     string n;
  9. public:
  10.     name(string N=""):n(N){}
  11.     string getName()const{return n;}
  12. };
  13.  
  14. int _tmain(int argc, _TCHAR* argv[])
  15. {
  16.     fstream file("data.dat",ios::in | ios::out | ios::binary);
  17.     name N;
  18.     file.seekg(0);
  19.     file.read(reinterpret_cast<char *>(&N),sizeof(name));
  20.     if(!file.fail())
  21.         cout << "Good!";
  22.     getchar();
  23.    
  24.     return 0;
  25. }

Despues de ejecutar un programa para crear el archivo he insertar en el la clase name simplemente por probar porque pasa esto y ahora en este programa cuando termina creo que se ejecuta el destructor de file y me lanza un error de infraccion de acceso de memoria

Código error:
Ver original
  1. Excepción no controlada en 0x51DDCCC8 (msvcp110d.dll) en Files_random_acces.exe: 0xC0000005: Infracción de acceso al leer la ubicación 0x01278B9C.

Por que??

Última edición por patilanz; 14/03/2014 a las 09:04
  #2 (permalink)  
Antiguo 14/03/2014, 11:28
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Error raro con archivos binarios

Hola solo quiero anadir que primero ejecuto este codigo para crear el archivo:

Código C++:
Ver original
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <fstream>
  4. #include <string>
  5. using namespace std;
  6.  
  7. class name{
  8.     string n;
  9. public:
  10.     name(string N=""):n(N){}
  11.     string getName()const{return n;}
  12. };
  13.  
  14. int _tmain(int argc, _TCHAR* argv[])
  15. {
  16.     fstream file("data.dat",ios::in | ios::out | ios::binary);
  17.     name N;
  18.     file.seekg(0);
  19.     file.read(reinterpret_cast<char *>(&N),sizeof(name));
  20.     if(!file.fail())
  21.         cout << "Good!";
  22.     getchar();
  23.    
  24.     return 0;
  25. }

Y luego al leer lo me lanza el error??
  #3 (permalink)  
Antiguo 07/04/2014, 08:30
Avatar de patilanz  
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Error raro con archivos binarios

No funcionaba porque no se puede guardar un string con tamaño dinámico en un archivo con tamaño fijo... Tengo que usar un char[n];
Lo pongo por si alguien lo necesita

Etiquetas: int, programa, raro, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:47.