Ver Mensaje Individual
  #3 (permalink)  
Antiguo 30/10/2014, 10:55
darksilk
 
Fecha de Ingreso: febrero-2014
Mensajes: 8
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: Como guardar un arreglo de objetos en un archivo

Cita:
Iniciado por eferion Ver Mensaje
Sin código es complicado decirte dónde está el error.
OK, aquí dejo un código, no es exactamente lo que pregunte, pero me ayudará a darme una idea. El problema aquí es que capturo y si muestra, pero al cerrar y querer volver a mostrar, el programa truena. Creo que el error esta en la variable nombre, cuando es Char si funciona, pero como string no

Código:
#include<fstream>
#include <iostream>
using namespace std;
struct {
int matricula;
string nombre;
int edad;
}alumno;
int main() {
int opc;
do{
cout <<endl << "1. Capturar" <<endl;
cout << "2. Mostrar" ;
cin >>opc;
if(opc==1){
cout <<"dame matricula :" ;
cin >> alumno.matricula;
cout << "NOmbre:" ;
fflush(stdin);
getline(cin,alumno.nombre);
cout << "dame edad :" ;
cin >> alumno.edad;
FILE *archdisco;
archdisco = fopen( "alumnos.dat" , "at+" );
fwrite(&alumno,sizeof(alumno),1,archdisco);
fclose(archdisco);
}
if(opc==2){
FILE *archdisco;
archdisco = fopen( "alumnos.dat" , "at+" );
while(fread(&alumno, sizeof(alumno),1,archdisco)==1){
cout << " MATRICULA " <<alumno.matricula;
cout << "Nombre " << alumno.nombre;
cout << " MESES " <<alumno.edad<<endl;
}
fclose(archdisco);
}
}
while(opc!=3);
return 0;
}