Поразительно, но программа из учебного курса по информатике (1 курс) работает как-то странно и неожиданно. Проблема в том, что на проверке достижения конца файла, программа уходит в бесконечный цикл. Проблема наблюдается в: gcc (4.1.2 20070925 (Red Hat 4.1.2-33)), Borland C++ Builder 6. Отсутствует в BDS... Непонятно, в чём дело, но я не вижу какой-то явной ошибки. Код писал не я, но не смог разобраться, так как последний раз что-то писал на C++ порядка полугода назад. ---8<--- #include <fstream> //for file streams #include <iostream> using namespace std; class person //class of persons { protected: char name[80]; //person's name int age; //person's age public: void getData() //get person's data { cout << "\n Enter name: "; cin >> name; cout << " Enter age: "; cin >> age; } void showData() //display person's data { cout << "\n Name: " << name; cout << "\n Age: " << age; } }; int main() { char ch; person pers; //create person object fstream file; //create input/output file //open for append file.open("GROUP.DAT", ios::app | ios::out | ios::in | ios::binary ); do //data from user to file { cout << "\nEnter person's data:"; pers.getData(); //get one person's data //write to file file.write( reinterpret_cast<char*>(&pers), sizeof(pers) ); cout << "Enter another person (y/n)? "; cin >> ch; } while(ch=='y'); //quit on 'n' file.seekg(0); //reset to start of file //read first person file.read( reinterpret_cast<char*>(&pers), sizeof(pers) ); while( !file.eof() ) //quit on EOF { cout << "\nPerson:"; //display person pers.showData(); //read another person file.read( reinterpret_cast<char*>(&pers), sizeof(pers) ); } cout << endl; getchar(); return 0; } --->8--- Повторюсь ещё раз, программа уходит в бесконечный цикл по ряду непонятных причин :(