文件逐行读取并筛选符合特定条件的行,进行字符串分割与文件保存

在这里插入代码片
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
#include <vector>
using namespace std;

//字符串分割函数

vector<string>  StringSplit(string& str, char elem)
{
	string tmp;//用于存储字符串
	stringstream ss(str);//把字符串输入流中
	vector<string> v1;//用于存储分割的字符串
	while (getline(ss, tmp, elem))
	{
		if (!tmp.empty())
		{
			v1.push_back(tmp);
		}
	}
	return v1;
}


int main()
{
	ifstream inputFile("C:\\Users\\Administrator\\Desktop\\123.log");//以输入方式打开文件
	ofstream  outputFile("C:\\Users\\Administrator\\Desktop\\output.txt");//以输出方式打开文件
	string line;
	while (getline(inputFile, line)) 
	{ // 逐行读取文件内容
		vector<string> v;
		if (line.find("arrow") != string::npos) //line.find()找到了返回索引值,找不到返回string::npos
		{ // 判断该行是否符合条件
			v = StringSplit(line, ':');
			cout << v.at(7) << endl;//v索引中不能为-1
			outputFile << v.at(7)<< endl; // 将符合条件的行写入输出文件
		}
	}
	inputFile.close(); // 关闭输入文件
	outputFile.close(); // 关闭输出文件
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值