Error escritura de vector con registro en archivo.dat C/C++

Iniciado por DK89, 23 Febrero 2017, 15:07 PM

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

DK89

CitarTengo un vector de 2 elementos, dichos elementos es un struct, el problema es que cuando quiero guardar lo que esta en el vector,(cabe recalcar que ingreso los datos del struct por teclado, codigo,nombre y apellido,legajo ), lo guarda pero con caracteres raros.
   nombre apellido          AŒ   nombre apellido  @    Ιθ los cuadraditos son NuL SOH BS PLU CAN STX DC3
#include<iostream>
#include<string>
using namespace std;
int main()
{
system("Color 0a");
struct Reg{           //registro
int codigo;
char NyA[20];
long int legajo;
};


int i,c,p;

Reg V[2];//vector de registros

for(i=0;i<2;i++){                              //recorro el vector
cout<<"Ingrese Codigo: "<<endl;
cin>>V[i].codigo;
while(getchar()!='\n');
cout<<"Ingrese Nombre y Apellido:"<<endl;
cin.getline(V[i].NyA,20);
cout<<"Ingrese nro de legajo:"<<endl;

cin>>V[i].legajo;
while(V[i].legajo<1500000 || V[i].legajo>1700000){
cout<<"Ingrese un nro de legajo correcto:"<<endl;
cin>>V[i].legajo;
}
cout<<"--------------------------------"<<endl;

}

for(i=0;i<2;i++){ //muestro el vector recorrido

cout<<"Codigo: "<<V[i].codigo<<endl;
cout<<"Nombre y apellido: "<<V[i].NyA<<endl;
cout<<"Legajo: "<<V[i].legajo<<endl;
cout<<"---------------------------------"<<endl;
}



FILE *fichero;
Reg R;

fichero=fopen("Alumnos.dat","wb+");  //abro el fichero para escritura, si no existe lo crea

fwrite(&V,sizeof(V),1,fichero);//aca esta mi error, pero nose que es?

fclose(fichero); return 0;
}