筛选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");

}
发布了18 篇原创文章 · 获赞 0 · 访问量 785

猜你喜欢

转载自blog.csdn.net/afiguresomething/article/details/104795044