我找不到爲什麼這個功能不正常運行:C++文件處理讀取功能錯誤
e1
是類別的僱員的對象:
class emp
{
public:
int no;
char name[30];
void enter()
{
std::cout<<"\n enter no. and name";
std::cin>>no;
gets(name);
}
void disp()
{
std::cout<<"\n\tNo.\t\tName\n\t"<<no<<"\t\t"<<name;
}
};
程序永遠不會在if
子句。
void modify(int a)
{
f1.open("emp.txt", ios::ate | ios::nocreate);
float pos;
f1.seekg(0, ios::beg);
while (!f1.eof())
{
f1.read((char*)&e1, sizeof(e1));
if (e1.no == a) // if e1.no == the number to be modified
{
pos = f1.tellg();
pos = pos - sizeof(e1)
e1.enter(); // enter new e1 details, function declared in class
f1.seekp(pos, ios::beg);
f1.write((char*)&e1, sizeof(e1)); // overwrite prev rec.
cout << "\n modified";
}
}
f1.close();
}
什麼是'''int a'''? – turnt
不要使用'!eof'作爲循環條件。認真。閱讀過程中,當您觸碰EOF時,您的循環在「讀取」後不會停止。 –
我希望你的Employee類不會從另一個繼承。 –