从文件中删除从开始的前几行该如何操作?
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
- kwarph
- 帖子: 51
- 注册时间: 2006-06-19 19:19
- 联系:
Re: 从文件中删除从开始的前几行该如何操作?
没有很直接的办法,下面的代码你看看
代码: 全选
#include <iostream>
#include <fstream>
#include <list>
#include <ctime>
#include <vector>
using namespace std;
int main() {
ifstream fin("testfile.txt");
if (!fin) {
cerr << "error" << endl;
return 1;
}
string line;
vector<string> lines;
while (getline(fin, line)) {
lines.push_back(line);
}
fin.close();
ofstream fout("testfile.txt");
if (!fout) {
cerr << "error" << endl;
return 1;
}
int skiplines = 5;
if (lines.size() <= skiplines) {
fout << "";
fout.close();
return 0;
}
for (size_t i = skiplines - 1; i < lines.size(); ++i) {
fout << lines[i] << endl;
}
fout.close();
}
-
- 帖子: 2841
- 注册时间: 2006-09-11 22:47
Re: 从文件中删除从开始的前几行该如何操作?
删除 file 文件前三行:
cat file |sed 1,3d
cat file |sed 1,3d
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
Re: 从文件中删除从开始的前几行该如何操作?
稍微修改了下2楼的代码
代码: 全选
#include <iostream>
#include <fstream>
using namespace std;
int main() {
int skiplines = 5;
ifstream fin("testfile.txt");
if (!fin) {
cerr << "error" << endl;
return 1;
}
ofstream fout("testfile.txt");
if (!fout) {
cerr << "error" << endl;
return 1;
}
string line;
int cur=0;
while (getline(fin, line)) {
if (cur++>=skiplines)
fout << line<< endl;
}
fin.close();
fout.close();
}
目前负债150多万
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
Re: 从文件中删除从开始的前几行该如何操作?
谢谢
但是4楼的结果不对哈
是不是只是删除内容的
还得结合2楼的?
但是4楼的结果不对哈
是不是只是删除内容的
还得结合2楼的?
上次由 weihua2008 在 2009-07-10 14:45,总共编辑 1 次。
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
Re: 从文件中删除从开始的前几行该如何操作?
shell命令就免了,这个我感觉不太适用嵌套到的c++程序中
是不是另有高见
是不是另有高见
- xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
Re: 从文件中删除从开始的前几行该如何操作?
还有一点疑问就是我的文件若是有几百M,或者更大,几个G的话这种方法还有效没有
容器还能承的下吗,是不是与我的内存的大小有关系,我的是两G 的内存
也就是操作的文件最大不能超过两G
这 只是一个极端的假设不要见怪
容器还能承的下吗,是不是与我的内存的大小有关系,我的是两G 的内存
也就是操作的文件最大不能超过两G
这 只是一个极端的假设不要见怪
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
Re: 从文件中删除从开始的前几行该如何操作?
#include <iostream>
#include <fstream>
using namespace std;
int main() {
int skiplines = 5;
ifstream fin("testfile.txt");
if (!fin) {
cerr << "error" << endl;
return 1;
}
ofstream fout("testfile.txt");
if (!fout) {
cerr << "error" << endl;
return 1;
}
string line;
for (int i = 0;i < skiplines;++ i)
getline(fin, line);
while (getline(fin, line)) {
fout << line<< endl;
}
fin.close();
fout.close();
}
#include <fstream>
using namespace std;
int main() {
int skiplines = 5;
ifstream fin("testfile.txt");
if (!fin) {
cerr << "error" << endl;
return 1;
}
ofstream fout("testfile.txt");
if (!fout) {
cerr << "error" << endl;
return 1;
}
string line;
for (int i = 0;i < skiplines;++ i)
getline(fin, line);
while (getline(fin, line)) {
fout << line<< endl;
}
fin.close();
fout.close();
}
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。