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

C++IO流

文章目录

  • 一、C++IO流体系
  • 二、C++标准IO流
  • 三、C++文件IO流
    • 1.ifstream
    • 2.ofstream

一、C++IO流体系

C++流是指信息从外部输入设备向计算机内部输入,从内存向外部输出设备输出的过程,这种输入输出的过程非常形象地被称为流的概念。IO流指的就是输入输出流。

我们平时对终端控制台的输入输出操作,对文件的输入输出操作以及对字符串的流操作,都属于C++的IO流体系。

C++系统实现了一个庞大的IO流体系,其中ios为父类,其它类都是直接或者间接继承自ios类。其中包括istream文件下的终端IO流、fstream文件下的文件IO流和sstream文件下的字符串IO流。

在这里插入图片描述

二、C++标准IO流

C++标准IO流即istream文件下的终端IO流,C++标准库提供了4个全局流对象:cin、cout、cerr、clog。

  • cin:用来进行标准输入,即数据通过键盘输入到程序中。
  • cout:用来进行标准输出,即数据从内存流向控制台。
  • cerr:用来进行标准错误的输出。
  • clog:用来进行日志的输出。

如果输入的数据类型不是字符型或者字符串型时,用cin输入的话,空格和回车都可以作为数据之间的分隔符,多个数据可以在一行输入,也可以分行输入。

但是如果输入的数据类型时字符型和字符串型时,用cin输入的话,空格和回车符是无法读取的。

三、C++文件IO流

1.ifstream

ifstream对应的是文件的读取操作,我们可以构建ifstream对象来进行文件读取操作,它的构造函数有两个:

一个是无参构造函数,无参构造函数的话需要我们手动调用ifstream类里的open函数来打开一个指定的文件。

还有一个是有参构造函数,需要传递打开文件的文件名(带路径的文件名),以及打开的选项。

在这里插入图片描述

打开的选项有inoutbinaryateapptrunc

  • in:对应文件读取操作,以读取文件的形式打开文件。
  • out:对应文件写入操作,以写入文件的形式打开文件。
  • binary:以二进制形式打开文件。
  • ate:对应文件写入操作,打开文件时文件指针指向文件的末尾。
  • app:对应文件写入操作,在文件末尾追加写入内容。
  • trunc:文件打开以后,文件原来有的内容将被清空。

下面我们演示一下ifstream对象的几种读取文件的方式:

operator>>:
由于ifstream也是继承自ios类的,它也支持流提取方式读取文件内容,这种方式不支持读取空格和换行符:

#include <iostream>
#include <fstream>using namespace std;int main()
{ifstream ifs("Test.cc", ios::in);char ch;while(ifs >> ch){cout << ch;}return 0;
}

get函数:
ifstream对象可以istream类里的get函数来实现对文件内容的读取,get函数是按字节读取,一次读取一个字符,空格和换行符它都能读取到:

#include <iostream>
#include <fstream>using namespace std;int main()
{ifstream ifs("Test.cc", ios::in);char ch;while(ifs){ch = ifs.get();cout << ch;}return 0;
}

2.ofstream

ofstream对应的是文件的写入操作,我们可以构建ofstream对象来进行文件的写入操作,它的构造函数和ifstream基本类似。

在这里插入图片描述

我们演示一下ofstream的写入操作:将上面ifstream的读取操作结合起来,用ifstream读取文件内容,再用ofstream写入到一个新的文件中:

#include <iostream>
#include <string>
#include <fstream>using namespace std;int main()
{ifstream ifs("Test.cc", ios::in);ofstream ofs("copy.cc", ios::out);char ch;while(ifs >> ch){ofs << ch;}return 0;
}

相关文章:

C++IO流

文章目录一、CIO流体系二、C标准IO流三、C文件IO流1.ifstream2.ofstream一、CIO流体系 C流是指信息从外部输入设备向计算机内部输入&#xff0c;从内存向外部输出设备输出的过程&#xff0c;这种输入输出的过程非常形象地被称为流的概念。IO流指的就是输入输出流。 我们平时对…...

交友项目【后端环境搭建】

目录 1&#xff1a;环境搭建 1.1&#xff1a;MYSQL数据库 1.1.1&#xff1a;导入相应的sql 1.2&#xff1a;Linux中的docker-compose方法集中部署 1.2.1&#xff1a;介绍 1.3&#xff1a;IDEA设置 1.3.1&#xff1a;基本要求 1.3.2&#xff1a;设置项目编码格式 1.3.3&…...

大事务问题解决方案

文章目录 大事务引发的问题解决办法少用@Transactional注解将查询(select)方法放到事务外事务中避免远程调用事务中避免一次性处理太多数据非事务执行异步处理总结大事务引发的问题 1、死锁 2、回滚时间长 3、并发情况下数据库连接池被占满 4、锁等待 5、接口超时 6、数据库主…...

python开启局域网传输

python开启局域网传输 1.找自己的IP 在命令提示窗口输入&#xff1a;ipconfig <----找自己的IP地址 2.创建要传输文件的文件夹&#xff08;只允许在该文件夹下访问传输&#xff09; a.复制文件夹路径 b.在命令提示窗口cd打开新创建的文件夹 cd “C:\Users\86151\Desktop…...

病毒丨熊猫烧香病毒分析

作者丨黑蛋 一、病毒简介 病毒名称&#xff1a; 熊猫烧香 文件名称&#xff1a; 40fee2a4be91d9d46cc133328ed41a3bdf9099be5084efbc95c8d0535ecee496 文件格式&#xff1a; EXEx86 文件类型(Magic)&#xff1a; MS-DOS executable 文件大小&#xff1a; 29.30KB SHA256&…...

SparkSQL学习——SparkSQL配置与文件的读取与保存

目录 一、添加依赖 二、配置log4j 三、spark提交jar包 四、读取文件 (一)加载数据 (二)保存数据 1.Parquet 2.json 3.CSV 4.MySql 5.hive on spark 6.IDEA的Spark中操作Hive 一、添加依赖 <properties><project.build.sourceEncoding>UTF-8</proje…...

随想录Day45--动态规划:70. 爬楼梯 (进阶), 322. 零钱兑换, 279.完全平方数

70爬楼梯这道题之前已经做过&#xff0c;是动态规划思想的入门&#xff0c;想要爬上第n层阶梯&#xff0c;看爬上n-1层的方法和n-2层的方法共有多少种&#xff0c;两个相加就是爬上n层阶梯的方法。这里扩展到每次可以爬k层&#xff0c;这样就是一个动态规划问题。因为每次可以爬…...

原理+案例,关于主从延迟,一篇文章给你讲明白!

前言 在生产环境中&#xff0c;为了满足安全性&#xff0c;高可用性以及高并发等方面的需求&#xff0c;基本上采用的MySQL数据库架构都是MHA、MGR等&#xff0c;最低也得是一主一从的架构&#xff0c;搭配自动切换脚本&#xff0c;实现故障自动切换。 上述架构都是通过集群主…...

QT开发笔记(Camera)

Camera 此章节例程适用于 Ubuntu 和正点原子 I.MX6U 开发板&#xff0c;不适用于 Windows&#xff08;需要自行修改 才能适用 Windows&#xff0c;Windows 上的应用不在我们讨论范围&#xff09;! 资源简介 正点原子 I.MX6U 开发板底板上有一路“CSI”摄像头接口。支持正点原…...

从C++的角度讲解C#容器

讲解C#容器的文章网上一搜一大把&#xff0c;作为一名C程序员如何高效学习C#容器呢&#xff0c;其实学语言如果能讲到这点就能触类旁通&#xff0c;举一反三&#xff0c;那效果是最好的问题市面上没有这样的书籍&#xff0c;那就跟着老白来一起从C的角度去讲解C#容器1.List<…...

React组件库实践:React + Typescript + Less + Rollup + Storybook

背景 原先在做低代码平台的时候&#xff0c;刚好有搭载React组件库的需求&#xff0c;所以就搞了一套通用的React组件库模版。目前通过这套模板也搭建过好几个组件库。 为了让这个模板更干净和通用&#xff0c;我把所有和低代码相关的代码都剔除了&#xff0c;只保留最纯粹的…...

c++ atomic

文章目录why atomic?sequentially consistent atomicRelaxed memory modelswhy atomic? 当我们有一片内存空间S,线程A正在往S里写数据,这个时候线程B突然往S中做了操作,导致线程A的操作结果变得不可预知(对线程A来说),这种情况换句话说叫做data race,我们一般的操作时上锁,在…...

要想孩子写作文没烦恼?建议家长这样做

说起语文学习&#xff0c;就不得不提作文。作为语文学习中的重中之重&#xff0c;作文写作一直是压在学生和家长身上的一块“心头大石”。发现很多孩子在写作文时&#xff0c;往往存在四大问题&#xff1a;写不出、不生动、流水账、太空洞。如今&#xff0c;孩子怕写作文&#…...

基于Python的高光谱图像分析教程

1、前言超光谱图像 (HSI) 分析因其在从农业到监控的各个领域的应用而成为人工智能 (AI) 研究的前沿领域之一。 该领域正在发表许多研究论文&#xff0c;这使它变得更加有趣&#xff01; 和“对于初学者来说&#xff0c;在 HSI 上开始模式识别和机器学习是相当麻烦的”&#xff…...

【图神经网络】从0到1使用PyG手把手创建异构图

从0到1用PyG创建异构图异构图创建异构图电影评分数据集MovieLens建立二分图数据集转换为可训练的数据集建立异构图神经网络以OGB数据集为例HeteroData中常用的函数将简单图神经网络转换为异质图神经网络GraphGym的使用PyG中常用的卷积层参考资料在现实中需要对 多种类型的节点以…...

2023美赛春季赛思路分析汇总

将在本帖更新汇总2023美赛春季赛两个赛题思路&#xff0c;大家可以点赞收藏&#xff01; 2023美赛春季赛各赛题全部解题参考思路资料模型代码等全部实时更新&#xff01;第一时间获取全部美赛春季赛相关资料&#xff01; 目前思路整理仅为部分&#xff0c;请大家耐心等待&…...

GPT4国内镜像站

GPT-4介绍GPT-4是OpenAI发布的最先进的大型语言模型&#xff0c;是ChatGPT模型的超级进化版本。与ChatGPT相比&#xff0c;GPT-4的推理能力、复杂问题的理解能力、写代码能力得到了极大的强化&#xff0c;是当前人工智能领域&#xff0c;最有希望实现通用人工智能的大模型。但G…...

代码随想录算法训练营第四十八天| 198 打家劫舍 213 打家劫舍II 337 打家劫舍III

代码随想录算法训练营第四十八天| 198 打家劫舍 213 打家劫舍II 337 打家劫舍III LeetCode 198 打家劫舍 题目: 198.打家劫舍 动规五部曲&#xff1a; 确定dp数组以及下标的含义 dp[i]&#xff1a;考虑下标i&#xff08;包括i&#xff09;以内的房屋&#xff0c;最多可以偷…...

飞桨DeepXDE用例验证及评估

在之前发布的文章中&#xff0c;我们介绍了飞桨全量支持业内优秀科学计算深度学习工具 DeepXDE。本期主要介绍基于飞桨动态图模式对 DeepXDE 中 PINN 方法用例实现、验证及评估的具体流程&#xff0c;同时提供典型环节的代码&#xff0c;旨在帮助大家更加高效地基于飞桨框架进行…...

telegram连接本地Proxy连接不上

1.ClashX开启允许局域网连接。 2.重启ClashX和Telegram...

Qwen2.5-14B-Instruct在AI编剧赛道的突破:像素剧本圣殿Glitch标题交互体验分享

Qwen2.5-14B-Instruct在AI编剧赛道的突破&#xff1a;像素剧本圣殿Glitch标题交互体验分享 1. 像素剧本圣殿&#xff1a;AI编剧的新范式 在数字内容创作领域&#xff0c;剧本创作一直是最具挑战性的任务之一。传统编剧需要花费大量时间构思情节、塑造角色、打磨对白&#xff…...

深入理解 MySQL 事务:从基础到实战,一篇吃透

在开发和运维 MySQL 数据库的过程中&#xff0c;事务&#xff08;Transaction&#xff09; 是绕不开的核心知识点&#xff0c;它是保证数据库数据安全、一致、可靠的基石。无论是电商下单、银行转账、支付结算&#xff0c;还是日常的业务数据操作&#xff0c;都离不开事务的支撑…...

【数据结构】树的定义、核心术语与关键性质全解析

在数据结构的世界里&#xff0c;树&#xff08;Tree&#xff09; 是一种极其重要的非线性结构&#xff0c;它完美模拟了自然界中树的层次关系&#xff0c;从文件系统、组织结构&#xff0c;到算法中的二叉搜索树、堆&#xff0c;再到 AI 中的决策树&#xff0c;树的身影无处不在…...

挖到宝!阿贝云免费云服务太香了,学生党开发者闭眼冲

做个人博客、练技术、部署轻量应用还在找高性价比云服务&#xff1f;阿贝云https://www.abeiyun.com 直接把免费做到极致&#xff0c;免费虚拟主机 免费云服务器双福利&#xff0c;用下来的体验真的远超预期&#xff0c;稳定不卡顿还免备案&#xff0c;新手操作也毫无门槛太省…...

别再只用外部中断了!用STM32F103的TIM2输入捕获,实现更稳定的旋转编码器读数

旋转编码器信号捕获&#xff1a;STM32F103定时器输入捕获模式实战解析 旋转编码器作为工业控制和消费电子中的核心位置传感器&#xff0c;其信号处理的稳定性直接影响系统性能。许多开发者习惯采用外部中断方式读取AB相脉冲&#xff0c;但在高速旋转或存在机械抖动的场景下&…...

AI写论文超厉害!4款AI论文生成工具,解决毕业论文写作难题!

还在为撰写期刊论文而烦恼吗&#xff1f;面对成堆的文献、复杂的格式要求以及无休止的修改&#xff0c;许多学术人员常常感到效率低下。这并不奇怪&#xff01;不过&#xff0c;不必太担心&#xff0c;以下将推荐4款实测有效的AI论文写作工具&#xff0c;它们能帮助你在论文文献…...

终极网盘下载加速方案:3分钟解锁八大平台极速下载

终极网盘下载加速方案&#xff1a;3分钟解锁八大平台极速下载 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 &#xff0c;支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘…...

阿里千问Qwen3.5-Omni:全模态大模型的新王者

Qwen3.5-Omni&#xff1a;全模态能力的新巅峰3月30日&#xff0c;阿里发布的千问新一代全模态大模型Qwen3.5-Omni&#xff0c;在音视频理解、识别、交互等215项任务中取得SOTA&#xff08;性能最佳&#xff09;&#xff0c;超越Gemini-3.1 Pro&#xff0c;成为全球最强的全模态…...

WindowsCleaner:告别C盘爆红,让Windows系统重获新生

WindowsCleaner&#xff1a;告别C盘爆红&#xff0c;让Windows系统重获新生 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你是否经历过Windows系统越用越慢&…...

太阳能家用电池电源市场:预计到2032年将达到98.8亿美元

在全球能源转型与地缘政治风险交织的背景下&#xff0c;家庭能源自主性需求正催生一个高速增长的细分市场。据 恒州诚思&#xff08;YH Research&#xff09; 《全球太阳能家用电池电源市场报告2026-2032》预测&#xff0c;2032年该市场规模将达98.8亿美元&#xff0c;2026-203…...