0829|C++day7 auto、lambda、C++数据类型转换、C++标准模板库(STL)、list、文件操作
一、思维导图





二、【试编程】将实例化类对象写入容器后,写入.txt文本中,再重新定义一个类容器,将.txt中的内容读取出来,输出到终端
封装一个学生的类,定义一个学生这样类的vector容器, 里面存放学生对象(至少3个)
再把该容器中的对象,保存到文件中。
再把这些学生从文件中读取出来,放入另一个容器中并且遍历输出该容器里的学生。
方法一(使用string类型的容器读取)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
class Stu
{
private:string name;int id;
public://无参构造函数Stu() {}//有参构造函数Stu(string n, int i):name(n),id(i){}string getname(){return name;}int getid(){return id;}
};
int main()
{Stu s1("张三",1001);Stu s2("李四",1002);Stu s3("王五",1003);Stu s4("赵六",1004);Stu s5("小明",1005);vector<Stu> v;//无参构造函数v.push_back(s1);//尾插v.push_back(s2);v.push_back(s3);v.push_back(s4);v.push_back(s5);//创建一个流对象ofstream osf;//以写的方式打开文件osf.open("D:/hqyj/QTtxt/day7/stu.txt",ios::out);//写入数据for(int i=0;i<5;i++){osf << v.at(i).getname() << " " << v.at(i).getid() << endl;}//关闭文件osf.close();//创建一个流对象ifstream isf;//以读的方式打开文件isf.open("D:/hqyj/QTtxt/day7/stu.txt",ios::in);//读取数据//创建一个新的容器存放读取到的数据vector<Stu> stu;string buf;//将从文件中的数据暂存到buf中while(getline(isf,buf))//当读不到数据时退出循环{isf >> buf;//从文件中读取stu.push_back(buf);//写入到容器中}for(int i=0;i<stu.size();i++){cout << stu.at(i);cout << endl;}//关闭文件isf.close();return 0;
}
方法二(使用类容器读取)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
class Stu
{
private:string name;int id;
public://无参构造函数Stu() {}//有参构造函数Stu(string n, int i):name(n),id(i){}string getname(){return name;}int getid(){return id;}
};
int main()
{Stu s1("张三",1001);Stu s2("李四",1002);Stu s3("王五",1003);Stu s4("赵六",1004);Stu s5("小明",1005);vector<Stu> v;//无参构造函数v.push_back(s1);//尾插v.push_back(s2);v.push_back(s3);v.push_back(s4);v.push_back(s5);//创建一个流对象ofstream osf;//以写的方式打开文件osf.open("D:/hqyj/QTtxt/day7/stu.txt",ios::out);//写入数据for(int i=0;i<5;i++){osf << v.at(i).getname() << " " << v.at(i).getid() << endl;}//关闭文件osf.close();//创建一个流对象ifstream isf;//以读的方式打开文件isf.open("D:/hqyj/QTtxt/day7/stu.txt",ios::in);//读取数据//创建一个新的容器存放读取到的数据vector<Stu> stu;string buf;//将从文件中的数据暂存到buf中while(getline(isf,buf))//使用getline函数从文件流isf中逐行读取数据,并将每一行的内容存储在字符串变量buf中{string name = buf.substr(0,buf.length()-4);//使用substr函数从读取到的每一行中提取出姓名部分。line.length() - 4表示从当前行的开头截取到倒数第4个字符之前,剩下的部分即为姓名。int id = atoi(buf.substr(buf.length()-4).c_str());//使用substr函数和atoi函数从读取到的每一行中提取出学号部分。line.length() - 4表示从当前行的末尾4个字符开始截取,剩下的部分即为学号。atoi函数将提取到的学号转换为整数。Stu s(name,id);//使用从文件中提取得到的姓名和学号实例化一个Stu对象stu.push_back(s);//尾插,将创建的学生对象添加到容器v的末尾}for(int i=0;i<stu.size();i++){cout << stu[i].getname() << stu[i].getid() << endl;}//关闭文件isf.close();return 0;
}
相关文章:
0829|C++day7 auto、lambda、C++数据类型转换、C++标准模板库(STL)、list、文件操作
一、思维导图 二、【试编程】将实例化类对象写入容器后,写入.txt文本中,再重新定义一个类容器,将.txt中的内容读取出来,输出到终端 封装一个学生的类,定义一个学生这样类的vector容器, 里面存放学生对象(至…...
SpringBoot连接MySQL数据库实例【tk.mybatis连接mysql数据库】
文章目录 一、数据库表二、引入依赖三、修改配置文件四、公共组件1、BaseController2、BaseService3、IService4、BaseMapper 五、代码1、Application2、Student实体类3、Controller4、Service5、ServiceImpl6、Mapper7、Mapper.xml 一、数据库表 CREATE TABLE student (id i…...
node基础之三:http 模块
// 1. 导入模块 const http require("http"); // 2. 创建服务 const server http.createServer((request, response) > {// 获取请求方法request.method;// 获取请求 url(只包含url中的路径和查询字符串)request.url;// 获取 HTTP 协议版…...
【高阶数据结构】AVL树 {概念及实现;节点的定义;插入并调整平衡因子;旋转操作:左单旋,右单旋,左右双旋,右左双旋;AVL树的验证及性能分析}
AVL树 一、AVL树的概念 二叉搜索树虽可以缩短查找的效率,但如果数据有序或接近有序二叉搜索树将退化为单支树,查找元素相当于在顺序表中搜索元素,效率低下。因此,两位俄罗斯的数学家G.M.Adelson-Velskii和E.M.Landis在1962年发明…...
Netty—FuturePromise
Netty—Future&Promise 一、JDK原生 Future二、Netty包下的 Future三、Promise1、使用Promise同步获取结果2、使用Promise异步获取结果.3、使用Promise同步获取异常 - sync & get4、使用Promise同步获取异常 - await5、使用Promise异步获取异常 在异步处理时࿰…...
固定资产卡片乱怎么管理
固定资产卡片是记录公司固定资产信息的重要工具,如果管理不善,容易造成卡片混乱、数据错误等问题。 为了避免这种情况的发生,可以采取以下措施: 建立完善的资产管理制度,明确固定资产的分类、标准和使用情况&#x…...
AutoHotkey(AHK)脚本,自动截图当前屏幕并发送给微信窗口
前提先安装好 AutoHotkey ,本脚本依赖AutoHotkey 环境 首先 ,设置微信的快捷键 执行代码如下: Loop {SendInput, {Alt down}s{Alt up}Sleep, 2000 ; 等待2秒; 双击鼠标左键Click, 2Sleep, 1000 ; 等待1秒SendInput, {Alt down}a{Alt up}Sl…...
Golang - go build打包文件
Go编译打包文件 1、简单打包 程序 main1.go: package mainimport "fmt"func main() {fmt.Println("Hello World!") } 打包: # 在linux服务上执行下面的3个命令 # linux平台,生成main1可执行程序 CGO_ENABLED0 GOOSlinux GOARCHam…...
Java的归并排序
不爱生姜不吃醋⭐️⭐️⭐️ 如果本文有什么错误的话欢迎在评论区中指正 与其明天开始,不如现在行动! 文章目录 🌴前言🌴一.归并排序1.概念2.时间复杂度3.代码实现 🌴二、小和问题1.概念2.举例3.代码实现 🌴…...
B. The Walkway Codeforces Round 893 (Div. 2)
Problem - B - Codeforces 题目大意:小明在数轴上要从1走到n,其中某些坐标上有一些饼干店,共m个,小明身上也有无限多的饼干,它首先一定会在1的位置吃一个饼干,在每个饼干店的位置会吃一个,在前…...
第四篇 DirectShow 采集调用结构关系
第一篇: DirectShow视频采集_会头痛的可达鸭的博客-CSDN博客 一、GraphBuilder 1、IFilterGraph2、IGraphBuilder、ICaptureGraphBuiler2 (1)、CLSID IFilterGraph CLSID_FilterGraphIFilterGraph2 CLSID_CaptureGraphBuilderIGraphBuilder CL…...
2605. 从两个数字数组里生成最小数字
文章目录 Tag题目来源题目解读解题思路方法一:枚举比较法方法二:集合的位运算表示法 写在最后 Tag 【贪心】【位运算】【数组】 题目来源 2605. 从两个数字数组里生成最小数字 题目解读 给定两个各自只包含数字 1 到 9 的两个数组,每个数组…...
服务器发送事件Server-sent events详解与示例
Server-sent events 服务端进行数据推送除了WebSocket之外,还可以使用Server-Send-Event方案。 与 WebSocket不同的是,服务器发送事件是单向的。数据消息只能从服务端到发送到客户端(如用户的浏览器)。这使其成为不需要从客户端…...
SOLIDWORKS 多实体的建模方式
SOLIDWORKS多实体是SOLIDWORKS中一个非常有用的功能。在SOLIDWORKS中,对于模型的设定通常被大家所熟知的有以下几种类型:零件、装配体以及工程图。 其实还有一种划分,就是多实体。严格意义上来说,多实体既不属于零件也不属于装配体…...
NSSCTF web 刷题记录1
文章目录 前言题目[GXYCTF 2019]禁止套娃方法一方法二 [NCTF 2019]Fake XML cookbook[NSSRound#7 Team]ec_RCE[NCTF 2018]Flask PLUS 前言 今天是2023.9.3,大二开学前的最后一天。老实说ctf的功力还是不太够做的题目太少,新学期新气象。不可急于求成&am…...
遥感指数数据库
目前遥感指数多种多样,那怎么针对不同的应用领域选择合适的植被指数?不同卫星又有哪些可以反演的指数? Henrich等人开发了Index Database(网址:https://www.indexdatabase.de/),总结了目前主流的遥感指数,…...
如何让insert程序速度快,可以试试联合SQL(insert 和 select 一起使用)?
查询添加可选择SQL执行,速度远超程序执行 insert 和 select案例 insert into 表1(列1,列2,列3,...) select 列1,列2,列3,...from表2(GROUP BY 列)116511 条数据 耗时45秒, 如果是程序查询然后再insert,则需要30分钟左右!&#x…...
IP地址、网关、网络/主机号、子网掩码关系
一、IP地址 IP地址组成 IP地址分为两个部分:网络号和主机号 (1)网络号:标识网段,保证相互连接的两个网段具有不同的标识。 (2)主机号:标识主机,同一网段内,主机之间具有相同的网…...
使用skvideo.io.vread读取avi视频,报错“No way to determine width or height from video...”
问题描述: 一开始安装sk-video,在使用skvideo.io.vread读取avi视频,报错“No way to determine width or height from video. Need -s in inputdict. Consult documentation on I/O.” 解决方案: 1. 卸载sk-video pip uninsta…...
Nomad 系列-安装
系列文章 Nomad 系列文章 Nomad 简介 开新坑!近期算是把自己的家庭实验室环境初步搞好了,终于可以开始进入正题研究了。 首先开始的是 HashiCorp Nomad 系列,欢迎阅读。 关于 Nomad 的简介,之前在 大规模 IoT 边缘容器集群管…...
告别HAL库:用GD32标准库为RT-Thread打造轻量级驱动(以F4系列为例)
告别HAL库:用GD32标准库为RT-Thread打造轻量级驱动(以F4系列为例) 在嵌入式开发领域,HAL库因其跨平台兼容性和易用性广受欢迎,但对于追求极致性能和精简代码的开发者而言,标准库往往能带来更直接的硬件控制…...
从TSMC 256bit eFuse宏单元入手,搞懂芯片冗余修复(Repair)的底层逻辑
从TSMC 256bit eFuse宏单元入手,搞懂芯片冗余修复(Repair)的底层逻辑 在半导体制造领域,芯片良率始终是决定生产成本和市场竞争力的关键因素。随着工艺节点不断微缩,单个晶圆上集成的晶体管数量呈指数级增长࿰…...
Linux应用健康端点实战指南
Linux应用健康端点实战指南本文面向具备一定 Linux 基础的技术人员,围绕应用健康端点展开,重点讨论健康接口、依赖检查和负载均衡摘除。在中级运维和系统管理工作中,这类主题常常与配置变更、资源状态、权限边界、自动化任务和业务影响交织在…...
基于树莓派A+与3.5寸PiTFT打造便携式触摸屏设备全攻略
1. 项目概述与核心价值如果你和我一样,对嵌入式开发和硬件DIY有浓厚的兴趣,那么将一块功能强大的单板计算机(比如树莓派)变成一个可以揣在口袋里、随时掏出来就能用的便携式触摸屏设备,绝对是一个充满成就感的项目。这…...
系统安全加固实战:在统信UOS与麒麟KOS中精准禁用指定网卡
1. 为什么需要精准禁用网卡? 在企业办公环境或高安全需求的服务器场景中,网络接口就像房子的门窗。你可能需要关闭某些不常用的出入口来防止入侵——比如禁用员工电脑的无线网卡来防止连接外部热点,或者在服务器上关闭非必要的物理网口来减少…...
OpenEuler桌面化踩坑实录:从黑屏登录界面到完美远程访问,我的xfce+xrdp配置全记录
OpenEuler桌面化踩坑实录:从黑屏登录界面到完美远程访问,我的xfcexrdp配置全记录 第一次尝试在OpenEuler上配置xfce桌面环境和xrdp远程访问时,我本以为按照网上的教程一步步操作就能顺利完成。然而现实却给了我当头一棒——从黑屏的登录界面到…...
告别Keil幻想!为什么MSP430F5529开发我最终选择了CCS(附完整driverlib库配置流程)
从Keil到CCS:MSP430F5529开发工具链的理性抉择与技术实践 第一次接触MSP430F5529时,我下意识地打开了熟悉的Keil MDK。毕竟在STM32的世界里,Keil几乎是我的第二开发环境。但当我尝试导入TI官方例程时,一连串的报错让我意识到——这…...
多智能体强化学习安全约束冲突解决方案
1. 多智能体强化学习中的安全约束冲突问题解析在机器人集群协同作业、无人机编队飞行、自动驾驶车队等实际场景中,多智能体系统面临着复杂的安全挑战。想象一下繁忙机场的跑道调度场景:数十架无人机需要在有限空域内完成起降、巡航和避让,任何…...
从Educoder到真实项目:新手用Python处理用户输入的3个避坑点与最佳实践
从Educoder到真实项目:Python用户输入处理的3个避坑指南与工程实践 当你在Educoder上完美运行input()函数时,是否思考过这段代码在真实项目中可能引发的灾难?教学平台的理想环境与真实世界的复杂输入之间存在巨大鸿沟。本文将揭示那些在线练习…...
告别单调按钮!用LVGL的imgbtn打造高颜值嵌入式UI(附9宫格切图技巧)
告别单调按钮!用LVGL的imgbtn打造高颜值嵌入式UI(附9宫格切图技巧) 在嵌入式设备开发中,用户界面的美观度往往被忽视,开发者更关注功能实现而非视觉体验。然而,随着智能家居、可穿戴设备和工业控制面板的普…...
