C++ IO流

文章目录

  • C语言中的流式输入输出
  • c++中的输入输出继承关系
  • c++中的循环输入
  • 再次回顾类型转换

C语言中的流式输入输出

C语言的输入输出:
scanf printf
输入输出是针对设备—内存之间的关系
比如:网卡,里面有一套类似文件系统的东西来记录, 这时就需要进行写入读取操作

在Linux中, 一切皆文件

流: 数据从一个地方到另一个方向

c++中的输入输出继承关系

在这里插入图片描述可以看到, 这两个都被basic_xxx重定义

在这里插入图片描述查看源码

在这里插入图片描述

ostream 定义了cout, cerr, clog,平时输出都一样, 要想发挥它自己的专有作用, 需要配置一下,很麻烦,分别对应, 标准输出, 错误输出, 日志输出
istream 定义类cin

提供了各种接口, 需要时再用,或者是直接用C语言的也行

在这里插入图片描述

内置类型支持<<和 >> 流插入, 流提取的原因是:提供了重载
在这里插入图片描述

像贪吃蛇, 俄罗斯方块的游戏, 就需要大量的流操作

c++中的循环输入

c++一直输入,C语言中就是!=EOF
在这里插入图片描述输入ctrl+c结束,暴力结束, kill -9
ctrl+z + 换行

cout.push(48);
输出0, 48对应的字符是’0’

上述的输出中, cin>>s1的返回是istream&对象, 他怎么能支持逻辑判断呢?
istream可以重载为bool

在这里插入图片描述

在这里插入图片描述

再次回顾类型转换

1.相关的可以转换
int a = 10;
int *p = (int *)a;
2.构造函数, 其他类型转换成自定义类型, 有构造函数就可以支持
内置类型–>自定义类型
在这里插入图片描述

像string s1 = “xxxxxx”;也是

自定义类型–>自定义类型

在这里插入图片描述
在这里插入图片描述普通迭代器通过const迭代器来构造这个, 实现自定义类型—>自定义类型

自定义类型—>内置类型
operator type()
重载

在这里插入图片描述
回到刚开始, istream能被识别为逻辑判断就是因为支持了从istream类型到bool类型的重载

在这里插入图片描述

内部的设计可以自己随意,就比如, 自己设计bool判断

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/52872.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Blender/3ds Max/C4D哪个软件好?

在3D建模和动画制作领域&#xff0c;Blender、3ds Max和Cinema 4D&#xff08;C4D&#xff09;都是备受赞誉的软件。每个软件都有其独特的优势和特点&#xff0c;选择哪个软件取决于用户的具体需求和个人偏好。今天&#xff0c;成都渲染101云渲染就来分析一些这三款软件的情况&…

C++前后缀分解

相关知识点 C算法与数据结构 打开打包代码的方法兼述单元测试 这个算法很容易想到&#xff0c;学习了本文后&#xff0c;可以更快得想到。 前后缀分解 分治法的一种&#xff0c;将数组和字符串&#xff0c;拆分成前缀和后缀。字符串(数组&#xff09;的前缀是字符串的前i个元…

【Vue】- Vue应用

文章目录 知识回顾前言Vue应用源码分析1. 组件化开发2. 组件注册与使用3. 组件样式冲突scoped4. 组件通信拓展知识设置默认值总结知识回顾 前言 Vue应用 源码分析 1. 组件化开发 组件化概念 组件化:一个页面可以拆分成一个个组件,每个组件有着自己独立的结构、样式、行为…

linux---压缩打包

linux打包和压缩文件和目录&#xff1a; 归档(打包)命令&#xff1a;tar 归档就是将多个文件或者目录打包成为一个文件&#xff0c;存放再磁盘中&#xff0c;方便文件或者目录丢失时&#xff0c;可以恢复。 归档文件名使用相对路径 &#xff08;注意区分归档文件和被归档文…

C# 禁止程序重复启动

修改&#xff1a;Program.cs [STAThread] static void Main() {Mutex mutex new Mutex(true, "NewGuid123456", out bool isCreatedNew);if (!isCreatedNew){MessageBox.Show(Application.ProductName "is running...");return;}Application.EnableVisu…

web安卓逆向之必学CSS基础知识

文章目录 CSS基础知识一、CSS的介绍1. CSS 的定义2. CSS 的作用3. CSS 的基本语法4. 小结 二、css 的引入方式1. 行内式语法格式&#xff1a;特点&#xff1a;适用场景&#xff1a; 2. 内嵌式&#xff08;内部样式&#xff09;语法格式&#xff1a;特点&#xff1a;适用场景&am…

Acrobat 9 安装教程

软件介绍 Adobe Acrobat 是由Adobe公司开发的一款PDF&#xff08;Portable Document Format&#xff0c;便携式文档格式&#xff09;编辑软件。借助它&#xff0c;可以以PDF格式制作和保存文档&#xff0c;以便于浏览和打印&#xff0c;同时还可以使用一些高级工具来创建、编辑…

[SWPU2019]Web11

考点&#xff1a; sql注入 buuctf上开启容器可以看到是个登录页面&#xff0c;注入的地方不在这里&#xff0c;我们首先需要进行注册一个账号&#xff0c;然后登录上去&#xff0c;可以看到有个申请发布广告。 既然登录页面没有东西&#xff0c;那么申请发布广告肯定会有东西…

Docker上安装mysql

获取 MySQL 镜像 获取镜像。使用以下命令来拉取镜像&#xff1a; 1docker pull mysql:latest 这里拉取的是最新版本的 MySQL 镜像。你也可以指定特定版本&#xff0c;例如&#xff1a; 1docker pull mysql:8.0 运行 MySQL 容器 运行 MySQL 容器时&#xff0c;你需要指定一些…

ARM驱动学习之8 动态申请字符类设备号

ARM驱动学习之8 动态申请字符类设备号 KernelCode: • 字符设备函数在文件“include/linux/fs.h”中 • alloc_chrdev_region() 是动态分配主次设备号。 • 宏定义MAJOR提取dev_t数据中的主设备号源码&#xff1a; /*** alloc_chrdev_region() - register a range of char dev…

通过Java设计模式提高业务流程灵活性的策略

引言 在软件开发中&#xff0c;随着业务需求的不断变化&#xff0c;系统的灵活性成为了一个重要的考量因素。Java设计模式作为一种经过验证的解决方案&#xff0c;可以有效地提高系统的可维护性、扩展性和灵活性。本文将探讨几种关键的设计模式&#xff0c;以及它们如何帮助我…

基于协同过滤+python+django+vue+的音乐推荐系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于协同过滤pythondjangovue…

计算机网络(一) —— 网络基础入门

目录 一&#xff0c;关于网络 二&#xff0c;协议 2.1 协议是什么&#xff0c;有什么用&#xff1f; 2.2 协议标准谁定的&#xff1f; 2.3 协议分层 2.4 OSI 七层模型 2.5 TCP/IP 四层模型 三&#xff0c;网络传输基本流程 3.1 局域网中两台主机通信* 3.2 报文的封装与…

【VSCode】VSCode Background 背景插件辅助窗口程序

前排贴上Github项目链接 GitHub窗口项目链接 这是一个基于VSCode上由shalldie上传的background扩展制作的windows窗口程序。 该程序旨在通过窗口程序尽可能的完善该扩展原有的功能。 background - shalldie 的最大优势是我目前仅在其扩展上发现了UseFront的选项&#xff0c;这…

共享单车轨迹数据分析:以厦门市共享单车数据为例(四)

副标题&#xff1a;共享单车与地铁接驳距离探究——以厦门市为例 关于轨道交通站点接驳范围的研究早已屡见不鲜&#xff0c;通常认为以站点为圆心、800米作为地铁站直接的服务范围是合理的。近年来&#xff0c;随着轨道、公交和慢行交通三网融合概念的提出&#xff0c;慢行交通…

docker--刚开始学不知道如何操作拉取,或拉取失败(cmd)

报 unauthorized: incorrect username or password.&#xff08;未授权&#xff09; 进行授权 在docker desktop注册账号登录好docker desktop 在cmd中进行docker登录&#xff0c;输入账号密码&#xff0c;提示Login Succeeded&#xff0c;即登录成功 docker login -u xxx(x…

Java API 之集合框架进阶

前言&#xff1a; 本文主要讲解集合框架中的List、Set、Map接口中的进阶知识&#xff0c;主要是分析其底层原理和优缺点。 1. List 接口 1.1 ArrayList import java.util.ArrayList; import java.util.List;public class ArrayListExample {public static void main(String[] …

《C++命名空间:大型项目中的挑战与应对》

在 C编程中&#xff0c;命名空间是一个强大的工具&#xff0c;它有助于避免命名冲突、组织代码结构以及提高代码的可维护性。然而&#xff0c;在大型项目中&#xff0c;命名空间的使用也可能会带来一些管理难题。本文将探讨 C命名空间在大型项目中可能出现的问题&#xff0c;并…

【Elasticsearch系列五】Java API

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

opencv之图像梯度

图像梯度 图像梯度计算的是图像变化的速度。对于图像的边缘部分&#xff0c;其灰度值变化较大&#xff0c;梯度值也较大&#xff1b;相反&#xff0c;对于图像中比较平滑的部分&#xff0c;其灰度值变化较小&#xff0c;相应的梯度值也较小。一般情况下&#xff0c;图像梯度计…