Код:
#include "iostream"
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
struct oz{
int ballv[2];int balla[3];
char predmeta[3][10];
char predmetv[2][10];};
struct student{
char F[10];
char N[10];
char O[10];
int godr;
int godo;
char ob[1];
};
int main(int argc, char* argv[])
{
struct oz ozf;
struct student hum;
FILE *outf,*outs;
int n;
char ch;
// outf=fopen("family.txt","w");
outs=fopen("ozenki.txt","w");
for(;;)
{ cout<<"\n dalshe pabotat:";cin>>ch;
if (ch!='y') break;
cout<<"\n familiy: ";strcpy(hum.F," ");cin>>hum.F;
cout<<"\n name: ";strcpy(hum.N," ");cin>>hum.N;
cout<<"\n otchestvo: ";strcpy(hum.O," ");cin>>hum.O;
cout<<"\n god rozhdeniya: ";cin>>hum.godr;
cout<<"\n god okonchaniya: ";cin>>hum.godo;
cout<<"\n nuzhda v obshage:";cin>>hum.ob;
fwrite(&hum,sizeof(hum),1,outf);
cout<<"\n Attestat: ";
for(n=0;n<4;n++)
{
cout<<"\n Predmet: "<<n+1<<" ";strcpy(ozf.predmeta[n]," ");cin>>ozf.predmeta[n];
cout<<"\n ocenka: "<<n+1<<" ";cin>>ozf.balla[n];
}
cout<<"\n Vstupitel'niye: ";
for(n=0;n<3;n++)
{
cout<<"\n Predmet: "<<n+1<<" ";strcpy(ozf.predmetv[n]," ");cin>>ozf.predmetv[n];
cout<<"\n ocenka: "<<n+1<<" ";cin>>ozf.ballv[n];
}
cout<<"\n ozenki v attestate:";
for (n=0;n<4;n++)
{
cout<<"\n"<<ozf.predmeta[n]<<" "<<ozf.balla[n];
}
cout<<"\n vstupit ozenki:";
for (n=0;n<3;n++)
{
cout<<"\n"<<ozf.predmetv[n]<<" "<<ozf.ballv[n];
}
fwrite(&ozf,sizeof(ozf),1,outs);
}
fclose(outs);
fclose(outf);
outf=fopen("family.txt","r");
fseek(outf,0,0);
fread(&hum,sizeof(hum),1,outf);
while(!feof(outf)){
cout<<"\n familiy: "<<hum.F;
cout<<"\n name: "<<hum.N;
cout<<"\n otchestvo: "<<hum.O;
cout<<"\n god rozhdeniya: "<<hum.godr;
cout<<"\n god okonchaniya: "<<hum.godo;
cout<<"\n nuzhda v obshage:"<<hum.ob;
fread(&hum,sizeof(hum),1,outf);
}
fclose(outf);
outs=fopen("ozenki.txt","r");
fseek(outs,0,0);
fread(&ozf,sizeof(ozf),1,outs);
while(!feof(outs))
{
cout<<"\n ozenki v attestate:";
for (n=0;n<4;n++)
{
cout<<"\n"<<ozf.predmeta[n]<<" "<<ozf.balla[n];
}
cout<<"\n vstupit ozenki:";
for (n=0;n<3;n++)
{
cout<<"\n"<<ozf.predmetv[n]<<" "<<ozf.ballv[n];
}
fread(&ozf,sizeof(ozf),1,outs);
}
fclose(outs);
return 0;
}
проблема тут struct oz, в первый байт с ошибкой данные пишутся
и проблема при считывании ,прога вылетает