little_greg Опубликовано 24 января, 2011 Жалоба Поделиться Опубликовано 24 января, 2011 помогите исправить ошибку, нужно чтобы каждая запись записывалась в конец файла, а у меня получается, что каждая записывается поверх предыдущей, как это исправить. #include <iostream>#include <fstream>#include <string>using namespace std;struct Person { char firstname[15]; char lastname[15]; char address[30]; size_t recordNum; size_t insuranceNum;};ostream& operator<<(ostream& os, const Person& p) { cout << p.firstname << endl << p.lastname << endl << p.address << endl << p.recordNum << endl << p.insuranceNum << endl;}class DataBase { public: size_t query(size_t ssn); Person retrieve(size_t rn); void add(const Person& p);};void DataBase::add(const Person& p) { ofstream fout("database.bin", ios::binary); fout.seekp(0, ios::end); fout.write(reinterpret_cast<const char*>(&p), sizeof(p));}int main() { DataBase db; Person np; for (int i = 0; i < 2; i++) { (cin >> np.firstname).get(); (cin >> np.lastname).get(); (cin.get(np.address, 30)).get(); (cin >> np.insuranceNum).get(); (cin >> np.recordNum).get(); db.add(np); } ifstream fin("database.bin", ios::binary); while (fin.read(reinterpret_cast<char*>(&np), sizeof(np))) cout << np << endl;} Ссылка на комментарий Поделиться на другие сайты Поделиться
Darhazer Опубликовано 27 января, 2011 Жалоба Поделиться Опубликовано 27 января, 2011 (изменено) ofstream fout("database.bin", ios::binary); fout.seekp(0, ios::end); замените на ofstream fout("database.bin", ios::binary | ios::app); Изменено 27 января, 2011 пользователем Darhazer Ссылка на комментарий Поделиться на другие сайты Поделиться
little_greg Опубликовано 8 февраля, 2011 Автор Жалоба Поделиться Опубликовано 8 февраля, 2011 спасибо Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти