当前位置: 首页 > article >正文

【C++ Primer Plus习题】17.5

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

问题:

这里是引用

解答:

#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


http://www.kler.cn/news/314964.html

相关文章:

  • Linux C高级day3
  • SpringCloud操作mysql
  • 智能工厂的软件设计 运用符号学方法的语言分类学 之0 回顾
  • 感知笔记3:平面和物体检测
  • 2024 vue3入门教程:02 我的第一个vue页面
  • 基于python+django+vue的美术馆预约系统
  • 关于安卓App自动化测试的一些想法
  • c++278函数指针
  • 【Python机器学习】NLP信息提取——正则模式
  • 【LeetCode】146. LRU缓存
  • LeetCode 每日一题 2024/9/16-2024/9/22
  • 自然语言处理_tf-idf
  • Java 入门指南:Java 8 新特性 —— Stream 流
  • JavaScript 插入元素到数组三个方法代码示例
  • celery 结合 rabbitmq 使用时,celery 消费者执行时间太久发送 ack 消息失败
  • 【研发日记】嵌入式处理器技能解锁(六)——ARM的Cortex-M4内核
  • 【js常用函数封装】获取年龄,根据身份证获取年龄,性别,生日
  • 算法笔试-编程练习-好题-07
  • 《MmAP : Multi-Modal Alignment Prompt for Cross-Domain Multi-Task Learning》中文校对版
  • Homebrew安装与切换下载源
  • 单例模式(饿汉式-懒汉式)
  • leetcode:3232. 判断是否可以赢得数字游戏(python3解法)
  • FastDFS架构和原理
  • RabbitMQ:交换机详解(Fanout交换机、Direct交换机、Topic交换机)
  • Linux实用命令 df和du命令
  • 数据结构之‘栈’
  • 面向对象程序设计
  • VisionPro - 基础 - 模板匹配技术-Search/PMAlign/PatMax(6)-纹理屏蔽和重叠匹配
  • Redis面试真题总结(四)
  • 多模态交互才是人机交互的未来