C++如何删除一个TXT文本中某一行的内容
4个回答
展开全部
fstream in;
in.open("issue.dat",ios_base::in|ios_base::binary);
if(!in)
{ cout<<"打开失败";return;}
fstream temp;
temp.open("temp.dat",ios_base::out|ios_base::binary);
Issue issue;
in.read((char*)&issue,sizeof(issue));
while(!in.eof()) //将文件内容修改后临时寸到另一个文件中
{
if(issue.IssueCode==IssueCode&&issue.IssueNum<IssueNum)
{
in.read((char*)&issue,sizeof(issue));//遇到过期的期刊,则不写入临时文件,
Num++;
continue; //直接读取下一个数据
}
temp.write((char*)&issue,sizeof(issue));
in.read((char*)&issue,sizeof(issue));
}
in.close();
temp.close(); //修改完成,将原文件清空,并将临时文件内容复制回原文件
temp.open("temp.dat",ios_base::in|ios_base::binary);
if(!temp)
{ cout<<"打开失败";return;}
ofstream out;
out.open("issue.dat",ios_base::out|ios_base::binary);
temp.read((char*)&issue,sizeof(issue));
while(!temp.eof()) //将文件内容修改后临时寸到另一个文件中
{
out.write((char*)&issue,sizeof(issue));
temp.read((char*)&issue,sizeof(issue));
}//完成复制
out.close();
temp.close();
in.open("issue.dat",ios_base::in|ios_base::binary);
if(!in)
{ cout<<"打开失败";return;}
fstream temp;
temp.open("temp.dat",ios_base::out|ios_base::binary);
Issue issue;
in.read((char*)&issue,sizeof(issue));
while(!in.eof()) //将文件内容修改后临时寸到另一个文件中
{
if(issue.IssueCode==IssueCode&&issue.IssueNum<IssueNum)
{
in.read((char*)&issue,sizeof(issue));//遇到过期的期刊,则不写入临时文件,
Num++;
continue; //直接读取下一个数据
}
temp.write((char*)&issue,sizeof(issue));
in.read((char*)&issue,sizeof(issue));
}
in.close();
temp.close(); //修改完成,将原文件清空,并将临时文件内容复制回原文件
temp.open("temp.dat",ios_base::in|ios_base::binary);
if(!temp)
{ cout<<"打开失败";return;}
ofstream out;
out.open("issue.dat",ios_base::out|ios_base::binary);
temp.read((char*)&issue,sizeof(issue));
while(!temp.eof()) //将文件内容修改后临时寸到另一个文件中
{
out.write((char*)&issue,sizeof(issue));
temp.read((char*)&issue,sizeof(issue));
}//完成复制
out.close();
temp.close();
展开全部
没有简单的方法:
只能全部读出来,删除某一行,然后写到另外的文件中
只能全部读出来,删除某一行,然后写到另外的文件中
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
打开直接删
退出时提示是否保存点否
退出时提示是否保存点否
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果此类操作非常多,分析下,尽量使用数据库
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询