【发布时间】:2015-01-27 16:27:29
【问题描述】:
好的,这是我目前用于删除功能的代码。
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)
{
}
}
本质上是这样的:我有一个名为 schedule[] 的类数组,每个对象都有以下成员:班级部门、班级编号、学分、老师姓氏、老师名字、房间号和当前gpa。我通过询问他们想要删除的老师姓氏来开始我的功能,因为其余的都可以重复。我在我的对象中搜索了那个姓氏。
我想知道如何从文件中删除该对象的整个实例。
我是否可以用它前面或后面的对象覆盖它。
即他们想从 10 个实例中删除 schedule[4],我可以用 [5] 覆盖 [4],用 [6] 覆盖 [5] 等等?
编辑:
这是正在读取写入的文件(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
编辑2:
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();
}
【问题讨论】:
-
除非性能有问题,否则将所有内容写入文件,就像创建新文件一样,但要从文件中删除的条目除外。
-
我在原帖中添加了文件
-
还添加了将新条目输出到文件中的文件