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 边缘容器集群管…...
[AI/Agent/社交] AI Agent社交网络产品:MoltBook => InStreet
Julia(julialang.org)由Stefan Karpinski、Jeff Bezanson等在2009年创建,目标是融合Python的易用性、C的高性能、R的统计能力、Matlab的科学计算生态。 其核心设计哲学是: 高性能:编译型语言(JIT࿰…...
模拟前端电路设计:高精度信号处理核心技术解析
1. 模拟前端电路设计概述 模拟前端电路是连接真实世界与数字系统的关键桥梁,它负责将传感器采集的微弱模拟信号进行调理、放大和转换,使其能够被后续的数字系统正确处理。作为一名从事硬件设计十余年的工程师,我处理过从医疗设备到工业控制的…...
三菱PLC与组态王四层电梯控制系统:详细图纸与IO分配解释
三菱PLC和组态王4层电梯四层电梯控制系统 我们主要的后发送的产品有,带解释的梯形图接线图原理图图纸,io分配,组态画面实验室四层电梯模型卡成狗的时候,真的恨自己当初梯形图只会写互锁单按钮那种幼儿园题。后来拆前辈的旧板子加…...
从rdt1.0到rdt3.0:可靠数据传输协议的演进与发送接收端FSM解析
1. 可靠数据传输协议的前世今生 第一次接触可靠数据传输协议(Reliable Data Transfer,简称rdt)是在十多年前的一个网络编程项目里。当时为了确保数据能准确无误地传输,我翻遍了各种资料,最终在《计算机网络:…...
小白也能玩转AI翻译:translategemma图文翻译快速入门指南
小白也能玩转AI翻译:translategemma图文翻译快速入门指南 1. 认识translategemma:你的私人翻译助手 translategemma-12b-it是Google基于Gemma 3模型开发的开源翻译模型,它能同时处理文本和图片中的文字翻译。想象一下,你正在国外…...
云容笔谈效果对比评测: vs Stable Diffusion 3.5东方人像生成质量深度分析
云容笔谈效果对比评测: vs Stable Diffusion 3.5东方人像生成质量深度分析 1. 评测背景与目的 东方人像生成一直是AI图像生成领域的特殊挑战。西方模型在生成东方人脸时常常出现面部结构不自然、表情僵硬、缺乏东方神韵等问题。本次评测将深入对比「云容笔谈」和S…...
ubuntu秘钥生成PKCS1 格式秘钥
openssl genrsa -out key 2048 openssl rsa -in key -out key2 -traditional...
AI Token Platform - AI Token 中转计费平台
AI Token Platform - AI Token 中转计费平台 AI Token Platform 是一款企业级 AI Token 中转与计费平台,深度融合 多模型 AI 网关、Kill Bill 计费引擎 与 企业级会员管理 三大核心能力。平台以"统一 API 接入 灵活计费策略 企业级会员体系"为核心理念…...
解决Canal 连接数据库超时问题
根本原因:DNS 反向解析导致超时Caused by: java.net.SocketTimeoutException: Timeout occurred, failed to read total 4 bytes in 5000 milliseconds, actual read only 0 bytesat com.alibaba.otter.canal.parse.driver.mysql.socket.BioSocketChannel.read(BioS…...
掌握QMK Toolbox的4个实战阶段:开源键盘定制工具从入门到精通的学习路径
掌握QMK Toolbox的4个实战阶段:开源键盘定制工具从入门到精通的学习路径 【免费下载链接】qmk_toolbox A Toolbox companion for QMK Firmware 项目地址: https://gitcode.com/gh_mirrors/qm/qmk_toolbox QMK Toolbox是一款专为机械键盘定制开发的开源工具&a…...
