筛选excel表格C++实现

问题

女朋友遇到了一个问题,她两份 Excel 表格:本班学生名单以及全年级学生名单,她想从全年级学生中把本班学生的信息筛选出来。她不想干就丢给我,我感觉一个个找太花费时间了,就帮她写了一个C++程序。记录在此。

思路

首先,为了方便,我首先将她的表格复制到记事本中,本班学生名单用 name.txt 存储,全年级学生名单用 all.txt 存储。

其次,读取 name.txt 将本班同学的名字插入到哈希表,并记录相应序号。

最后,逐条读取全年级学生名单,记录本班同学的信息,然后输出。实现如下:

#include<iostream>
#include<fstream>
#include<string>
#include<unordered_map>

using namespace std;

int main(){
	//首先将本班同学名字加入到哈希表中
	ifstream name;
	name.open("name.txt", ios::app|ios::out|ios::in);	
	string temp;
	unordered_map<string, int> myset;	
	int d=0;
	while(!name.eof()){
		getline(name, temp);
		myset[temp]=d++;
	}
	vector<string> res(d, " ");
	name.close();
	//然后逐条读取所有学生信息
	ifstream all;
	all.open("all.txt", ios::app|ios::out|ios::in);
	ofstream fout("results.txt", ios::out| ios::app );
	while (!all.eof()){		
		getline(all, temp);
		string student;
		int i=0;
		while (temp[i]!='\t'){
			i++;
		}
		student=temp.substr(0, i);

		if(myset.find(student)!=myset.end())//遇到本班同学,加入到结果中
			res[myset[student]]=temp;
	}

	for(int i=0; i<d; i++)//输出结果
		fout<<res[i]<<"\n";

	all.close();
	fout.close();
	cout<<"love u three thousand times"<<"\n";
	system("pause");

}

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值