【C++ Primer Plus习题】17.5

大家好,这里是国中之林!
❥前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看←

问题:

解答:

cpp 复制代码
#include <iostream>
#include <fstream>
#include <string>
#include <set>
#include <windows.h>
using namespace std;

int main()
{
	SetConsoleOutputCP(CP_UTF8);
	
	ifstream fin_mat("mat.txt", ios_base::in);
	ifstream fin_pat("pat.txt", ios_base::in);

	string guest;
	set<string>mat_guest, pat_guest, guest_set;
	if (!fin_mat.is_open() || !fin_pat.is_open())
	{
		cout << "Error open files." << endl;
		exit(EXIT_FAILURE);
	}
	while (getline(fin_mat,guest)&&guest.size()>0)
	{
		mat_guest.insert(guest);
	}
	cout << "\nMat's friends are: \n";
	for (auto pd = mat_guest.begin(); pd != mat_guest.end(); pd++)
	{
		cout << *pd << " ";
	}
	while (getline(fin_pat,guest)&&guest.size()>0)
	{
		pat_guest.insert(guest);
	}
	cout << "\nPat's friends are: \n";
	for (auto pd = pat_guest.begin(); pd != pat_guest.end(); pd++)
	{
		cout << *pd << " ";
	}
	fin_mat.close();
	fin_pat.close();

	guest_set.insert(mat_guest.begin(), mat_guest.end());
	guest_set.insert(pat_guest.begin(), pat_guest.end());

	ofstream fout("guest.txt", ios_base::out);
	if (!fout.is_open())
	{
		cout << "Error open file." << endl;
		exit(EXIT_FAILURE);
	}

	for (auto pd = guest_set.begin(); pd != guest_set.end(); pd++)
	{
		fout << *pd << " ";
	}
	fout.close();

	ifstream fin("guest.txt", ios_base::in);
	if (!fin.is_open())
	{
		cout << "Error open file." << endl;
		exit(EXIT_FAILURE);
	}
	cout << "\nAll Guest list: \n";
	while (getline(fin,guest)&&guest.size()>0)
	{
		cout << guest << " ";
	}
	cout << endl;
	fin.close();

	return 0;
}

运行结果:



考查点:

  • set容器
  • 读写文件

注意:

  • 字符问题,文件字符要与控制台字符一样才行,不然会出现乱码.

  • set容器的特点:

2024年9月22日16:13:28

相关推荐
wuminyu12 分钟前
专家视角看Java字节码加载与存储指令机制
java·linux·c语言·jvm·c++
万粉变现经纪人18 分钟前
如何解决 pip install llama-cpp-python 报错 未安装 CMake/Ninja 或 CPU 不支持 AVX 问题
开发语言·python·开源·aigc·pip·ai写作·llama
清风明月一壶酒30 分钟前
OpenClaw自动处理Word文档全流程
开发语言·c#·word
其实防守也摸鱼35 分钟前
CTF密码学综合教学指南--第五章
开发语言·网络·笔记·python·安全·网络安全·密码学
木喃的井盖38 分钟前
无锁队列细节
c++·工程
网络工程小王1 小时前
【LangChain 大模型6大调用指南】调用大模型篇
linux·运维·服务器·人工智能·学习
qq_571099351 小时前
学习周报四十三
学习
王老师青少年编程1 小时前
csp信奥赛C++高频考点专项训练之字符串 --【字符串基础】:输出亲朋字符串
c++·字符串·csp·高频考点·信奥赛·专项训练·输出亲朋字符串
WBluuue1 小时前
数据结构与算法:莫队(一):普通莫队与带修莫队
c++·算法
小郑加油2 小时前
python学习Day12:pandas安装与实际运用
开发语言·python·学习