青年大学习未学习人员名单查询

直接上代码。


#include <string> 
#include <fstream> 
#include <iostream> 
#include <set>
#include<cstdio>
#include<algorithm>
using namespace std;

int main()
{
	//读取文件
	ifstream study("study.txt");
	ifstream data("data.txt");
	//检查文件
	if (!study.is_open() | !data.is_open())
	{
		cout << "未成功打开文件" << endl;
	}
	//分别读取内容保存
	set<string> set_study;
	set<string> set_data;
	const int student_num = 323;
	for (int i = 0; i < student_num; i++)
	{
		string temp;
		getline(data, temp);
		//cout <<"读取的内容: "<<temp << endl;

		if (temp.size() == 0)
			break;

		char*str = (char *)temp.c_str();
		char *pTmp = NULL;
		char *name;
		name = strtok_s(str, "\t", &pTmp);
		set_data.insert(name);
	}
	cout <<"学生人数"<< set_data.size() << endl;
	for (auto iter = set_data.begin(); iter != set_data.end(); ++iter) {
		cout << *iter << " ";
	}
	cout << endl;

	for (int i = 0; i < student_num; i++)
	{
		string temp;
		//读取行
		getline(study, temp);
		//cout << temp<<temp.size() << endl;
		if (temp.size() == 0)
			break;
		//分割字符串
		char*str = (char *)temp.c_str();
		char *pTmp = NULL;
		char *name;
		name = strtok_s(str, "\t", &pTmp);
		set_study.insert(name);
	}

	cout <<"已经学习的人数"<< set_study.size() << endl;
	for (auto iter = set_study.begin(); iter != set_study.end(); ++iter) {
		cout << *iter << "  ";
	}
	cout << endl;
	
	//求未完成学习名单
	set<string> unstudy_name;
	for (auto iter = set_data.begin();iter != set_data.end();++iter) {
		if (set_study.find(*iter) == set_study.end())
		{		
			unstudy_name.insert(*iter);
		}
	}
	cout << "未学习的人数" << unstudy_name.size() << endl;
	//写入文件
	ofstream unstudy("unstudy.txt");
	for (auto iter = unstudy_name.begin(); iter != unstudy_name.end(); ++iter) {
		cout << *iter << "  ";
		unstudy << *iter << "\n";
	}
	cout << endl;
	
	study.close();
	data.close();
	unstudy.close();
	system("pause");
	return 0;
}

运行结果如下:在debug文件下有相应的txt文件。

猜你喜欢

转载自blog.csdn.net/qq_34935373/article/details/115459714