【C++入门篇 - 9】:IO流

PyTorch 面试题及详细答案120题(54-70)-- 模型训练与评估 本文介绍了PyTorch模型训练的基本流程和核心概念。主要内容包括: 模型训练基本流程:通过代码示例展示了数据准备、模型定义、损失函数和优化器选择、训练循环(前向传播、反向传播、参数更新)的完整过程,并包含验证集评估的实现。 训练过程中的关键概念: Epoch:完整遍历一次训练集 Batch:将数据分成小批次 Iteration:一个Batch的参数更新过程 三者关系:1 Epoch = N/B Batch = N/B Iteration(N为样本数,B为batch_size) PyTorch数据加载机制: 阅读详情

IO流的概念

  1. 流是一种抽象的概念,表示了数据的无结构化传递
  2. C++流是指信息从外部输入设备(如键盘)向计算机内部(如内存)输入和从内存向外部输出设备(显示器)输出的过程
  3. C++有了I/O标准类库,用以完成流操作的功能

fstream的使用

fstream的作用

fstream是C++中常用的文件操作类,用于文件操作,和C语言学过文件操作的作用一样

C++文件操作

  1. 包含头文件 fstream,并打开命名空间std,或是std::fstream;
  2. 使用fstream类来实例化对象,通过对象的成员来进行文件操作

代码示例:

#include<fstream>
using std::fstream;
using std::ios;


void main()
{
	fstream f; //文件操作的类对象
	//文件分为两类:文本文件,二进制文件
	f.open("2.txt", ios::out | ios::binary); //二进制的写操作,相当于wb
	int num = 1;
	f.write((char*)&num, sizeof(int));
	f.close();

	fstream f1;
	f1.open("2.txt", ios::in | ios::binary); //二进制的读操作,相当于rb
	int val;
	f1.read((char*)&val, sizeof(int));
	f1.close();
	printf("%d\n", val);
}

在这里插入图片描述
在这里插入图片描述

常用成员函数

  1. open(“文件名路径”,打开方式)
    作用:打开文件
    文件路径:绝对路径或相对路径
    打开方式:表示打开文件的模式,不同的模式对应不同的数据操作(只读,只写,二进制操作等)打开方式如下表,打开方式可以是多种模式的组合
模式标记适用对象作用
ios::inifstream、fstream打开文件用于读取数据。如果文件不存在,则打开出错。
ios::outofstream、fstream打开文件用于写入数据。如果文件不存在,则新建该文件;如果文件原来就存在,则打开时清除原来的内容。
ios::appofstream、fstream打开文件,用于在其尾部添加数据。如果文件不存在,则新建该文件。
ios::ateifstream打开一个已有的文件,并将文件读指针指向文件末尾(读写指的概念后面解释),如果文件不存在,则打开出错。
ios::truncofstream打开文件时会清空内部存储的所有数据,单独使用时与ios:out 相同
ios::binaryifstream、ofstream、fstream以二进制方式打开文件。若不指定此模式,则以文本模式打开
ios::in | ios::outfstream打开已存在的文件,既可读取其内容,也可向其写入数据。文件刚打开时,原有内容保持不变。如果文件不存在,则打开出错。
ios::in | ios::outofstream打开已存在的文件,可以向其写入数据。文件刚打开时,原有内容保持不变。如果文件不存在,则打开出错。
ios::in | ios::out | ios::truncfstream打开文件。既可读取其内容,也可向其写入数据。如果文件本来就存在,则打开时清除原来的内容;如果文件不存在,则新建该文件。
  1. close() //关闭文件

  2. is_open()
    作用:判断文件是否打开成功,成功返回1,失败返回0

  3. eof()
    作用:判断文件是否到达文件末尾,到了文件末尾返回true,否则false

  4. put(字符)
    作用:往文件中写一个字符

  5. get() 和 getline()
    作用:读取字符

char ch;
file.get(ch);//读取一个字符,赋值给ch
ch=file.get();//读取一个字符,赋值给ch
get(char *str,int num,char delim='\n');//读取num个字符,赋值给str,或在这个期间读到了'\n'结束
getline(char *str,int num,char delim='\n');//读取num个字符,赋值给str,或在这个期间读到了'\n'结束

get和getline的区别:都可以读多个字符,get会把文件内遇到终结符留在输入流中,所以需要使用get将终结符扔掉。getline自
动把输入流中的终结符取消掉了,下次可以继续直接读取。读一行字符时,一般使用getline。

  1. seekp()或seekg()
    作用:文件指针的移动
file.seekp(5,ios::beg);//从文件开头的位置往后偏移5个字符
在这里,数字5,表示的是文件指针往后移动5个字节的位置,如果是-5那么就是往前移动5个字节的位置
第二个参数是文件指针从哪里移动位置有三个:
ios::beg 文件开头
ios::end 文件末尾
ios::cur 文件指针当前的位置
  1. tellg()或tellp()
获取文件指针的移动大小,文件指针移动可以
int len=file.tellg();//获取文件指针移动了多少
  1. 二进制形式读写文件
    write()写入文件、read()读取文件
writr(const char *str,int str_size);
写入一个整数 int a=10;
file.writ((const char *)&a,sizeof(int));

read(char *str,int str_size);
读取一个整数 int a=0;
file.read((char*)&a,sizeof(int));//读取4个字节的整数,赋值给a

使用重载的<< >>

使用运算符来进行重载操作

	fstream f;
	f.open("1.txt", ios::out);
	f << "hello world" << std::endl;
	f.close();

	f.open("1.txt", ios::in);
	char strArr[32] = {};
	f >> strArr;
	printf("%s\n", strArr);

在这里插入图片描述

【数据集】中国区域地面气象要素驱动数据集(CMFD)2.0 中国区域地面气象要素驱动数据集(CMFD)2.0 阅读详情

相关推荐

STM32实战:ADXL345传感器驱动与数据采集全解析(IIC/SPI双模式适配)

本文详细解析了STM32驱动ADXL345传感器的全流程,包括IIC和SPI双模式适配、硬件连接、寄存器配置及数据采集处理。通过实战代码示例和常见问题排查指南,帮助开发者快速实现高精度加速度数据采集,适用于运动检测、姿态识别等多种嵌入式应用场景。

weixin_29171087的博客 313

【C++】————IO流

1.一个冷知识:屏蔽力是一个人最顶级的能力,任何消耗你的人和事,多看一眼都是你的不对。2.你不用变得很外向,内向挺好的,但需要你发言的时候,一定要勇敢。正所谓:君子可内敛不可懦弱,面不公可起而论之。3.成年人的世界,只筛选,不教育。4.自律不是6点起床,7点准时学习,而是不管别人怎么说怎么看,你也会坚持去做,绝不打乱自己的节奏,是一种自我的恒心。5.你开始炫耀自己,往往都是灾难的开始,就像老子在《道德经》里写到:光而不耀,静水流深。

bhbcdxb123的博客 2695

Gephi新手必看:如何用Excel整理CSV数据快速生成网络图(附模板)

本文为Gephi新手提供了一份从Excel数据整理到生成专业网络图的完整指南。详细讲解了如何构建规范的节点表和边表CSV文件,并导入Gephi进行可视化分析。通过实战案例,帮助读者快速掌握利用Excel整理数据、规避常见错误,并运用布局算法与视觉编码,将复杂关系数据转化为直观的网络洞察。

weixin_28487433的博客 389

【与C++的邂逅】--- C++的IO流

类对应操作场景ifstream只读ofstream只写fstream可读可写注:使用文件流对象需要包含对应的头文件<fstream>在C语言中,如果想要将一个整形变量的数据转化为字符串格式,主要有两种方式:1. 使用itoa()函数2. 使用sprintf()函数int main()return 0;注意 : 这两个函数在转化时,都得需要先给出保存结果的空间,空间大小不好界定,而且转化格式不匹配时,可能还会得到错误的结果甚至程序崩溃。

2301_79448270的博客 2512

Facebook登录协议逆向实战:从加密参数到完整流程解析(附Python代码)

本文深入解析Facebook登录协议的逆向工程,重点拆解`lgndim`和`encpass`等加密参数的生成逻辑,并提供完整的Python实现代码。通过Base64解码和RSA加密技术,帮助开发者理解并实现Facebook登录流程,同时涵盖工程优化与安全实践。

weixin_30687051的博客 476

PostgreSQL中idle in transaction状态的5个隐藏危害及实战解决方案

本文深入剖析了PostgreSQL中`idle in transaction`连接状态的五大隐藏危害,包括内存与锁泄漏、VACUUM受阻导致表膨胀、事务ID加速消耗、连接池资源耗尽以及增加故障排查复杂度。文章提供了基于`pg_stat_activity`视图的监控方法、识别高危事务的SQL脚本,并给出了从数据库参数调优(如设置`idle_in_transaction_session_timeout`)到应用层编码规范与连接池配置的完整实战解决方案。

zzz56的博客 234

【C++笔记】C++IO流的深度剖析

哈喽,各位小伙伴大家好!上期我们讲了模版的特化及其编译分离。今天我们来讲一下C++三大特性之继承。话不多说,我们进入正题!向大厂冲锋。

大白的编程日记. 1345

基于Simulink的前馈解耦SVPWM整流器仿真

本文提出了一种基于Simulink的前馈解耦SVPWM整流器仿真方案,针对传统双闭环控制存在的耦合严重、电压利用率低等问题进行优化。通过前馈补偿dq轴耦合项(ωLiq和ωLid)结合SVPWM调制算法,实现了电流跟踪误差<3%、电压利用率达0.99、THD<3%的性能指标。文章详细阐述了系统架构设计,包括前馈解耦原理推导、SVPWM算法实现步骤,并提供了完整的Simulink建模方法。仿真结果表明,该方案在动态响应速度(25ms)和直流电压纹波(1.1%)方面显著优于传统SPWM控制。同时给出了

MHD0815的博客 162

C++修炼:IO流

本文介绍了C++ IO流的相关知识,主要包括:1. C++ IO库通过继承体系实现,支持标准IO流、文件IO流和字符串IO流;2. IO流状态管理,包括goodbit、eofbit、failbit和badbit四种状态,以及如何恢复错误状态;3. 输出缓冲区的管理机制和触发刷新的五种情况;4. 标准IO流的使用方法;5. 文件IO流的分类(ofstream、ifstream、fstream)和多种文件打开方式;6. 字符串IO流的使用方法

但凡的博客 1474

Jetson Orin边缘语音AI实战:用Riva ASR/TTS + Llama 2打造离线智能语音助手

本文详细介绍了如何利用NVIDIA Jetson Orin的边缘计算能力,结合Riva ASR/TTS语音引擎和Llama 2大语言模型,构建完全离线的智能语音助手。通过硬件优化、量化部署和性能调优,实现在网络不稳定环境下的高效语音交互,适用于智能家居、车载系统等场景。

weixin_29053383的博客 242

Python 对接钉钉获取员工上一篇日报或周报内容

摘要:本文介绍使用Python对接钉钉API获取员工日报/周报的方法。首先需创建钉钉应用并开通日志权限,获取员工UserID。通过获取AccessToken进行鉴权,调用topapi/report/list查询日志记录,筛选最新日报/周报后,使用topapi/report/details获取详细内容。需注意权限控制、时间范围筛选和模板匹配等问题。文末提供完整代码示例,并建议扩展自动化触发、数据存储等功能。该方法适用于企业自动化获取员工工作日志的场景。

从技术实践立足,从项目管理方法论延伸思考 804

C++ IO流

在 C++ 中,“流(Stream)” 是一种 抽象的数据传输机制,它通过统一的接口实现了程序与各种输入/输出设备(如键盘、屏幕、文件、内存等)之间的数据流动。流的核心思想是将数据的输入输出操作统一为连续的字节序列处理,提供类型安全和可扩展的操作方式C++ 标准库中的流主要分为三类:流与传统C函数的对比:C++标准库提供了4个全局流对象:注意事项: 输入数据类型必须与要提取的数据类型一致,否则出错。出错只是在流的状态字state中对应位置(置1),程序继续空格和回车都可以作为数据之间的分隔符,所以多个数

weixin_74006549的博客 1038

2011-2024年间各省数字普惠金融指数数据(覆盖广度、使用深度和数字化程度)

2、指标:数字金融普惠指数、数字金融覆盖广度指数、数字金融使用深度指数、普惠金融数字化程度指数、数字金融使用深度指数下属的支付、保险、货币基金、信用服务、投资、信贷等分类指数。中国各省的数字普惠金融指数数据,从数字金融覆盖广度、数字金融使用深度和普惠金融数字化程度3个维度来构建数字普惠金融指标体系。数字普惠金融指数一共3个维度、33项具体指标。全套指数包含数字金融覆盖广度指数、数字金融使用深度指数和普惠金融数字化程度指数,以及数字金融使用深度指数下属的支付、保险、货币基金、信用服务、投资、信贷等分类指数。

【优快云】 1万+

C++IO流讲解

本文详细介绍了C/C++中的IO流系统。首先讲解C语言的基本输入输出函数scanf和printf的使用方法,包括格式控制、宽度设置等技巧,并深入分析了缓冲区的概念及其作用。其次,文章阐述了C++面向对象的IO流体系,包括标准输入输出流对象(cin/cout)、文件流和字符串流的类关系图。重点探讨了流状态管理机制,通过示例代码展示了good()、eof()、fail()和bad()等状态检测方法的应用场景。最后,详细说明了全局流对象cin和cout的用法,包括基本的输入输出操作和错误处理技术。全文系统性地比较

2301_79969685的博客 1358

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

27. C++的IO流操作

C++的IO流操作

分享C/C++/Linux/网络/数据库/数据结构 1457

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【C++】IO流

类型转换重载,文件IO,字符串流

林宇恒的博客 1067

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

c++IO流总结

c++ io流总结

wyw0000的博客 361

C++IO库

本文介绍了C++标准库中的IO流系统,主要包括以下内容:1)IO继承家族类结构,展示了iostream、fstream等类的继承关系;2)IO流状态管理,包括goodbit、eofbit等状态标志及其处理方法;3)输出缓冲区管理机制,解释了缓冲区的刷新条件和优化技巧;4)标准IO流的使用,包括cin/cout的基本操作和类型转换;5)文件IO流的基本概念,说明ofstream、ifstream的功能。文章通过代码示例演示了流状态检测、缓冲区控制等关键操作技巧,并提供了相关参考文档链接。

2402_89035880的博客 1126

C++学习记录——삼십이 C++IO流

C++IO流

kongqizyd146的博客 488

C++复习(IO流)

C++复习(IO流) 本复习主要用于《传智播客的C++程序设计教程》教材的复习 C++中有两种IO操作,一种是由C语言继承来的IO函数输入输出语句,一种是面向对象的IO流类库,IO流不是C++语言的一部分,而是标准C++库的一部分,是C++类的一个集合。 1、C++中的输入输出 输入输出是数据传递的过程,数据如流水一般从一处流到另外一处。 1.1、C++中输入输出的分类 程序的输入是指将文件中的数据传递给程序(读),输出是指将程序中的结果传递给文件(写),C++系统将输入输出分为三类。 1.1.1、标准I.

qq_45797850的博客 1238

9-IO流

IO流

创造价值 718

C++【IO流】

想要让自定义类型能够进行转换,我们需要将其进行强制类型转换,但是一般用于类型转换的()被占用了,所以我们就用operator bool,将我们的类型转化成一个bool值,并将这个bool值进行返回。2.可以使用这部分的内容实现“行”读取的行为,对于计算机而言是没有“行”这个概念,有了这部分,就可以定义“行”的概念,然后解析缓冲区的内容,返回一个“行”。一般是整型指针,比较运算符表达式道德结果可以做逻辑条件判断,0就是假,非0就是真,自定义类型一般是不能做while的条件类型判断的,这里存在隐式类型转换。

芊樱烛渊的博客 1240

C++ 文件IO流

什么是文件IO流 首先需要包含文件IO操作流头文件fstream #include <fstream> //文件IO操作流头文件 fstream 文件的读取类ifstream 声明读取文件所需要的输入流类变量 并 建立流对象 使用ifstream类中的open成员函数 连接指定文件 关于open打开文件函数中的第二个参数 – 使用方式 ios::in -- 打开一个可读取文件 (以输入的方式打开文件) ios::out -- 打开一个可写入文件 (以输出的方式打开文件,如果已有此名字的

Chroniccandy的博客 709

八、IO流

本文主要介绍了C++中的IO流相关知识,包括标准IO流、文件IO流和string IO流。首先讲解了IO流状态的四种标志位(goodbit/eofbit/failbit/badbit)及其处理方法,如使用cin.clear()恢复流状态。其次详细说明了输出缓冲区的管理机制。在文件操作方面,介绍了二进制和文本文件的读写方法,比较了app和ate模式的区别,并指出了二进制读写中string成员可能导致野指针的问题。最后展示了stringstream的使用方法,包括数据序列化和反序列化的实现。

xxhh156的博客 608

IO流C++

1.iostream处理控制台IO 1 #include<iostream> 2 #include<string> 3 using namespace std; 4 istream& Test(istream &in) { //IO对象没有拷贝或者赋值,所以形参和返回值都不能设置为流类型,通常用引用来传递流对象。 5 s...

weixin_34190136的博客 120

c++IO之标准设备操作流

每种语言系统都会提供IO操作的类库,用于对预定义类型数据进行输入输出的操作。C++也是如此,它是以字节流的形式实现的。在输入操作时,字节流从输入设备(键盘、磁盘)流向内存;在输出操作时,字节流由内存流向输出设备(显示器、打印机);字节流可以是ASCII字符、二进制数据、图形图像、音频视频等信息。文件和字符串也可以看成是有序的字节流,又称为文件流和字符串流。C++的编译系统自带一个面向对象的输入输出

1306
上一篇: 【C++入门篇 - 8】:多态
下一篇: 讲真的,我哭死,搞了一个画图软件
街 三 仔
街 三 仔 新星创作者: python技术领域 新星创作者: python技术领域 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄5年 1万+粉丝 338原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

街 三 仔

你的鼓励是我创作的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值