zepterman
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Нужно записать данные в структурированный текстовый файл. Проблема заключается в том, что в части ввод данных, функция fseek не отрабатывает. Если в части ввод данных не закрывать файл, а писать сразу все элементы - все нормально, но файл нужно закрывать (такое условие задачи). Подскажите, в чем проблема, пожалуйста. Код: struct Man { char name[40]; int age; }; //создание данных Man AAA; AAA.age=20; strcpy(AAA.name, "Jack"); Man BBB; BBB.age=30; strcpy(BBB.name, "Frank"); Man *CCC; CCC = new Man; CCC->age=25; strcpy(CCC->name, "Jovani"); Man TTT; // ввод данных FILE *f=fopen("man.txt", "w"); fseek(f,1*sizeof(Man),0); fwrite(&AAA,sizeof(Man),1,f); fclose(f); f=fopen("man.txt", "w"); fseek(f,2*sizeof(Man),0); fwrite(&BBB,sizeof(Man),1,f); fclose(f); f=fopen("man.txt", "w"); fseek(f,3*sizeof(Man),0); fwrite(CCC,sizeof(Man),1,f); fclose(f); //вывод данных f = fopen("man.txt", "r"); long size, count = 0; fseek(f, 0, SEEK_END); size = ftell(f); fseek(f, 0, SEEK_SET); while (size > count * sizeof(Man)) { fread(&TTT, sizeof(Man), 1, f); cout<< "Name: "<< TTT.name<< endl; cout<< "Age: "<< TTT.age<< endl; count++; fseek(f, count * sizeof(Man), SEEK_SET); } fclose(f); |
|