char* FileName="basa.dbj";
FILE *base;
TClient Acum;
TClient Acum1("eee","kkgfkf");
base = fopen(FileName,"a+");
if(!base) return;//Error!!!!
strncpy(Acum.Secondname,"aaaaaaaaaaaaaaaaaaaaaaaaaaaa",(sizeof(Acum.Secondname)-1));
...
//Для остальных переменных так же
fwrite(&Acum,sizeof(Acum),1,base);
fseek(base,0, SEEK_SET);//устанавливаем на начало
fread(&Acum1,sizeof(Acum1),1,base);
fclose(base);
Проблема с функцией fread()
:confused:
char* FileName="basa.dbj";
FILE *base;
TClient Acum;
TClient Acum1("eee","kkgfkf");
base = fopen(FileName,"a+");
Acum.Secondname="aaaaaaaaaaaaaaaaaaaaaaaaaaaa";
Acum.Name="fjdfhjgh";
Acum.Thirdname="fjdfhjgh";
Acum.Birsthday="fjdfhjgh";
Acum.Target="fjdfhjgh";
fwrite(&Acum,sizeof(Acum),1,base);
fread(&Acum1,sizeof(Acum1),1,base);
fclose(base);
Просветите плиз начинающего самоучку.
Цитата: Gaidukov-maxim
Не могу понять почему не считываются данные. После выполнения функции в Acum1 все равно ноль.
:confused:
char* FileName="basa.dbj";
FILE *base;
TClient Acum;
TClient Acum1("eee","kkgfkf");
base = fopen(FileName,"a+");
Acum.Secondname="aaaaaaaaaaaaaaaaaaaaaaaaaaaa";
Acum.Name="fjdfhjgh";
Acum.Thirdname="fjdfhjgh";
Acum.Birsthday="fjdfhjgh";
Acum.Target="fjdfhjgh";
fwrite(&Acum,sizeof(Acum),1,base);
fread(&Acum1,sizeof(Acum1),1,base);
fclose(base);
Просветите плиз начинающего самоучку.
:confused:
char* FileName="basa.dbj";
FILE *base;
TClient Acum;
TClient Acum1("eee","kkgfkf");
base = fopen(FileName,"a+");
Acum.Secondname="aaaaaaaaaaaaaaaaaaaaaaaaaaaa";
Acum.Name="fjdfhjgh";
Acum.Thirdname="fjdfhjgh";
Acum.Birsthday="fjdfhjgh";
Acum.Target="fjdfhjgh";
fwrite(&Acum,sizeof(Acum),1,base);
fread(&Acum1,sizeof(Acum1),1,base);
fclose(base);
Просветите плиз начинающего самоучку.
Во первых, начинающему самоучке надо сюда а потом сюда
Во вторых - все у вас читаеться - вы вначале записываете данные а после того как записали, с того места где остановились - начинаете читать. Второе - потрудитесь найти описание строковых функций для С-строк.
Код должен выглядеть так:
Код: