我正在尝试从文件中删除内容 到目前为止,我已经达到了这个想法,即在另一个临时文件中删除我不删除的所有数据,然后删除最旧的并重命名temp 这是我的代码:
string username;
cout << "Enter The Employee you want to Remove : ";
cin >> username;
int i=0;
string line1,line2,line3;
fstream myfile;
fstream temp;
myfile.open("Data.txt");
temp.open("temp.txt");
if (myfile.is_open() || temp.is_open())
{
while ( myfile >> line1 >> line2 >> line3 )
{
if(line1!="Employee" || username!=line2)
{
temp << line1 << endl << line2 << endl << line3 << endl;
continue;
}
else if (line1=="Employee" && username==line2)
{
i=1;
}
}
myfile.clear();
myfile.seekg(0, ios::beg);
myfile.close();
temp.close();
remove("Date.txt");
rename("temp.txt","Date.txt");
if(i==0)
{
cout << "There is no Employee with The Name you Entered!" << endl;
}
else
{
cout << "Employee data has been Deleted." << endl;
}
}
我自己跟踪代码并且它不会创建临时文件! 我可以使用这种技术进行更新吗?
答案 0 :(得分:0)
读取粘贴的代码真的很难......但是,我会试一试。
你为什么使用
(myfile.is_open() || temp.is_open())
作为条件?你不应该验证BOTH文件是否已打开,因此
(myfile.is_open() && temp.is_open())
我问,因为你的sw可能没有打开临时文件,可能是因为你没有来自操作系统的文件夹的写权限,但仍然通过了OR条件测试并继续。
但这是一个疯狂的猜测。