C++ 文件流,怎样删除文件中的一部分内容?
是一个题库的操作,每个题是一个类结构,我用write以追加的方式加到一个文件(xzt.txt)中的,我想实现删除其中任意一个题。。我想到的一个方法是把原题库的内容一条一条...
是一个题库的操作,每个题是一个类结构,我用write以追加的方式加到一个文件(xzt.txt)中的,我想实现删除其中任意一个题。。我想到的一个方法是把原题库的内容一条一条的读到内存里(用read),每读一条就写(用write)到另一个临时文件(lxzt.txt)中,在读到要删除的题的时候跳过写入步骤。完成后再清空原题库,把lxzt.txt中的内容完全复制到原题库xzt.txt中。。可是实现的不对,达不到效果……帮写个简单的例子吧……
展开
推荐于2018-07-18
展开全部
几年前的代码,自己调一下
#include <iostream>
#include <vector.h>
#include <string.h>
#include <fstream>
using namespace std;int main()
{
string from;
int count = 0;
int hang = 0;
cout<<"文件:";
cin>>from; //取得源文件名
ifstream is(from.c_str()); //输入流
istream_iterator<string>ii(is);
istream_iterator<string> eos;
vector<string>b (ii,eos); //将文件的内容存入容器中
vector<string>::iterator it; //使用迭代器
cout << "输入你想删除的内容:";
string str;
cin >> str; for(it = b.begin() ; it<b.end();it++)
{
if(str == *it)
{
*it = ""; //如果找到要删除的内容,将对应的迭代器内容清空
}
} ofstream wr(from.c_str(),ios::out); for(it=b.begin() ; it<b.end();it++) //重新写回文件
{
wr << *it <<endl;
cout << *it<< endl;
} return 0;
}
#include <iostream>
#include <vector.h>
#include <string.h>
#include <fstream>
using namespace std;int main()
{
string from;
int count = 0;
int hang = 0;
cout<<"文件:";
cin>>from; //取得源文件名
ifstream is(from.c_str()); //输入流
istream_iterator<string>ii(is);
istream_iterator<string> eos;
vector<string>b (ii,eos); //将文件的内容存入容器中
vector<string>::iterator it; //使用迭代器
cout << "输入你想删除的内容:";
string str;
cin >> str; for(it = b.begin() ; it<b.end();it++)
{
if(str == *it)
{
*it = ""; //如果找到要删除的内容,将对应的迭代器内容清空
}
} ofstream wr(from.c_str(),ios::out); for(it=b.begin() ; it<b.end();it++) //重新写回文件
{
wr << *it <<endl;
cout << *it<< endl;
} return 0;
}
展开全部
看你想要删除的内容具有什么特点。比如删除多少字数,或特定内容等等。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
还没服役
2005年4月11日,印度宣布,印度航母制造工程正式启动。
2009年2月28日,印度海军举行了“维克兰特”号龙骨安装仪式 。
2011年12月29日,印度首艘国产航母“维克兰特”号在科钦船厂出坞下水。
2013年8月12日,“维克兰特”号航母首次正式下水,当时完工仅30%。
2014年年底,“维克兰特”号航母在沉寂了1年后终于有了新的进展,已经开始建造舰岛设施。
2015年5月28日,外形基本成型的“维克兰特”号航母第3次下水,但不利的潮水和船坞出口处的淤泥导致了船坞大门的故障,使得出坞工作被迫延迟。导致推迟服役时间为2025年。
2005年4月11日,印度宣布,印度航母制造工程正式启动。
2009年2月28日,印度海军举行了“维克兰特”号龙骨安装仪式 。
2011年12月29日,印度首艘国产航母“维克兰特”号在科钦船厂出坞下水。
2013年8月12日,“维克兰特”号航母首次正式下水,当时完工仅30%。
2014年年底,“维克兰特”号航母在沉寂了1年后终于有了新的进展,已经开始建造舰岛设施。
2015年5月28日,外形基本成型的“维克兰特”号航母第3次下水,但不利的潮水和船坞出口处的淤泥导致了船坞大门的故障,使得出坞工作被迫延迟。导致推迟服役时间为2025年。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询