C++ IO流

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判断

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

温有情

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

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

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

打赏作者

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

抵扣说明:

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

余额充值