Хорошо, вот код, который у меня есть для моей функции удаления.Удаление из файла C++
void classSchedule::deleteEntry(classSchedule schedule[], int numElems)
{
string entryToDelete;
cout << endl << "Enter the Teacher's Last Name of the Entry you want to delete: ";
cin >> entryToDelete;
int i, recordToDelete = -1;
for (i = 0; i < numElems; i++)
{
if (schedule[i].teacherLastName == entryToDelete)
recordToDelete = i;
}
if (recordToDelete != -1)
{
}
}
По сути, как это: у меня есть массив классов, называются телепрограмма [] каждый объект имеет следующие элементы: отдел класса, номер класса, кредитные часы, учитель фамилию, учитель имя, номер число и текущий gpa. Я начал свою работу, попросив у них фамилию учителей, которую они хотят удалить, потому что все остальное может повториться. Я искал свой объект для этой фамилии.
Я хочу знать, как удалить весь экземпляр этого объекта из файла.
Возможно ли, чтобы я просто переписал его объектами впереди или позади него.
т. Е. Они хотят удалить расписание [4] из 10 экземпляров, я мог бы просто перезаписать [4] с помощью [5], [5] с [6] и так далее?
Edit:
Вот файл, который читается писал (classes.txt):
ENG 112 3 Tetlof S S062 3.1
CST 280 3 Klingler T K114 3.4
LWA 220 2 Wesolak J M121 2.1
POL 103 4 Fortin B J122 4.1
ENG 111 2 Harood J K131 3.1
edit2:
void classSchedule::outputToFile(classSchedule schedule[], int& numElems)
{
ofstream fileOut;
fileOut.open("classes.txt", ios::out | ios::app);
fileOut << schedule[numElems - 1].classDepartment
<< " " << schedule[numElems - 1].creditHours
<< " " << schedule[numElems - 1].teacherLastName
<< " " << schedule[numElems - 1].teacherFirstName
<< " " << schedule[numElems - 1].roomWingAndNumber
<< " " << schedule[numElems - 1].currentGPA;
fileOut.close();
}
Если производительность не является проблемой, напишите все в файл, как будто вы создаете новый файл, но запись, которую вы хотите удалить из файла. –
Я добавил файл в исходное сообщение – user2311215
также добавил файл, который выводит новую запись в файл – user2311215