c++文件流如何删除数据
1个回答
推荐于2018-04-11
展开全部
void delrecord()
{
ifstream da("Result.txt", ios_base::in);string str; bool flag = true;
ofstream data("return.txt", ios_base::out);
char a[20];
if (!da)
{
cout<<"找不到文件!!!!"<<endl;
return;
}
cout<<"请输入你要删除人的姓名"<<endl;
cin>>a;
while ( da>>TelInfo.name)
{
getline(da, str);
if (strcmp(TelInfo.name,a)==0)
{
cout <<endl <<"你想删除的联系人:" <<endl;
cout<<TelInfo.name<<" "<<str<<endl;
flag=false;
break;
}
data<<TelInfo.name
<<" "<<str<<endl;
}
if(flag)cout<<"没有该人"<<endl;
else
{
while (getline(da, str))
{
data<<str <<endl;
}
da.close();
data.close();
ifstream in("return.txt", ios::in);
ofstream out("Result.txt", ios::out);
if (!out || !in)
{
cout<<endl<<"对不起不能打开文件!!!"<<endl<<endl;
return;
}
while (getline(in, str))
{
out<<str<<endl;
}
out.close();
in.close();
cout <<endl <<"这个人的信息已经从你的通迅录中删除!!!" <<endl <<endl; }}给你看一段程序吧,思想是把要删除东西的文件复制到另一个文件中,当然在复制该文件的时候把要删除的内容跳过,然后在把另一个文件复制回来就可以了
{
ifstream da("Result.txt", ios_base::in);string str; bool flag = true;
ofstream data("return.txt", ios_base::out);
char a[20];
if (!da)
{
cout<<"找不到文件!!!!"<<endl;
return;
}
cout<<"请输入你要删除人的姓名"<<endl;
cin>>a;
while ( da>>TelInfo.name)
{
getline(da, str);
if (strcmp(TelInfo.name,a)==0)
{
cout <<endl <<"你想删除的联系人:" <<endl;
cout<<TelInfo.name<<" "<<str<<endl;
flag=false;
break;
}
data<<TelInfo.name
<<" "<<str<<endl;
}
if(flag)cout<<"没有该人"<<endl;
else
{
while (getline(da, str))
{
data<<str <<endl;
}
da.close();
data.close();
ifstream in("return.txt", ios::in);
ofstream out("Result.txt", ios::out);
if (!out || !in)
{
cout<<endl<<"对不起不能打开文件!!!"<<endl<<endl;
return;
}
while (getline(in, str))
{
out<<str<<endl;
}
out.close();
in.close();
cout <<endl <<"这个人的信息已经从你的通迅录中删除!!!" <<endl <<endl; }}给你看一段程序吧,思想是把要删除东西的文件复制到另一个文件中,当然在复制该文件的时候把要删除的内容跳过,然后在把另一个文件复制回来就可以了
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询