Функция должна по id студента и code предмета находить запись в файле и изменять ее. Но после ее работы остается только измененная запись и нолики в файле. Что нужно сделать, что бы работало правильно?
void Register::setRecord() {
int id, code;
int count = 0;
cout << "--Изменение данных--" << endl;
cout << "Введите номер студенческого билета: ";
cin >> id;
cout << "Введите номер предмета: ";
cin >> code;
fileRead.open(file, ios::binary);
if (fileRead.is_open())
{
Record record;
while (fileRead.read((char*)&record, sizeof(Record)))
{
if (record.studentId == id && record.subId == code) {
Record rec;
fileWrite.open(file, ios::binary);
fileWrite.seekp(sizeof(Record)*(count), ios::beg);
cout << "Имя студента: ";
cin >> rec.student;
cout << "Номер билета: ";
cin >> rec.studentId;
cout << "Название предмета: ";
cin >> rec.subject;
cout << "Номер предмета: ";
cin >> rec.subId;
cout << "Оценка: ";
cin >> rec.mark;
fileWrite.write((char*)&rec, sizeof(Record));
fileWrite.close();
}
count++;
}
fileRead.close();
}
else
{
cout << "File not founded." << endl;
}
}