如何在c++里删除某一文件指定段落

来源:百度知道 编辑:UC知道 时间:2024/06/03 22:40:58
具体来说,就是删除一个名为"pz.csv"文件的前十行和最后两行。本人实在不太会,请大牛给出具体程序。谢谢帮助。
文件格式为:
QUERY DESCRIPTIONS

Q1 : Particle Position Z
GROUP/TYPE:,New Particle 1
SELECTED OBJECTS:,All
RANGE:,None
UNITS:,m

EXTRACTED DATA

TIME:,2.031//此行为第11行
...//省略若干行为数据
...
...
,0.00285988
,0.0030534

最后有两行空空格。

将文件内容读出,保存在内存,就可按要求删除某些行,然后再将内容保存到原来的文件。
以下是示例程序:注意修改文件名路径,如果与lz的实际不符。
#pragma warning(disable:4786)
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
using namespace std;

const char *filename = "pz.csv";
void readFile(vector<string > &vec, ifstream &fin)
{
if(!fin.is_open())
{
cout<<"file not open"<<endl;
return;
}

char buf[65536];
while(!fin.eof())
{
fin.getline(buf, 65536);
vec.push_back(string(buf));
}

vector<string >(vec).swap(vec);
}

void writeFile(vector<string > &vec, ofstream &fout)
{
vector<string >::iterator it = vec.begin();
while(it != vec.end())
{
fout<<(*it++)<<endl;
}
vec.clear();
}

void deleteLine(vector<string > &vec)
{