当前位置: 首页> 房产> 家装 > C++ IO流

C++ IO流

时间:2025/7/9 17:39:10来源:https://blog.csdn.net/m0_74146042/article/details/142286887 浏览次数:0次

文章目录

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

在这里插入图片描述

关键字:C++ IO流

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: