文章目录
- 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判断