Поразительно, но программа из учебного курса по информатике (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---
Повторюсь ещё раз, программа уходит в бесконечный цикл по ряду непонятных
причин :(
Ответ на:
комментарий
от generatorglukoff
Ответ на:
комментарий
от dilmah

Ответ на:
комментарий
от dilmah

Ответ на:
комментарий
от generatorglukoff

Ответ на:
комментарий
от dilmah

Ответ на:
комментарий
от generatorglukoff

Ответ на:
комментарий
от Reset

Ответ на:
комментарий
от andreyu
Ответ на:
комментарий
от Reset
Ответ на:
комментарий
от alex_custov
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Функция read() в С++ (2011)
- Форум debug простенького приложения (С++) (2010)
- Форум анекдоты на ц (2005)
- Форум wayland server имплементация, создание глобальных объектов (2021)
- Форум TCPSERVER (2019)
- Форум отладка работы sys_read() -> file->f_op->read() (2010)
- Форум μt — C++20 библиотека модульного тестирования (2024)
- Форум Com-port странное поведение программы (2011)
- Форум Проблема с чтением wav файла? (2022)
- Форум Помощь в gluLookAt (2013)