55-第八章 IO库

本文详细介绍了C++中的标准IO库,包括iostream用于标准输入输出,fstream用于文件读写,以及sstream用于字符串流操作。重点讲解了istream、ostream、cin、cout、cerr的基本使用,以及如何利用>>和<<进行数据读写。同时,还提到了getline函数在读取字符串时的作用。通过学习,读者将掌握C++中IO流的基本操作和应用场景。

前面章节已经在用的IO库设施

  • istream:输入流类型,提供输入操作。
  • ostream:输出流类型,提供输出操作。
  • cin:一个istream对象,从标准输入读取数据。
  • cout:一个ostream对象,向标准输出写入数据。
  • cerr:一个ostream对象,向标准错误写入消息。
  • >>运算符:用来从一个istream对象中读取输入数据。
  • <<运算符:用来向一个ostream对象中写入输出数据。
  • getline函数:从一个给定的istream对象中读取一行数据,存入到一个给定的string对象中。

IO类

标准库定义的IO类型

  • iostream头文件:从标准流中读写数据,istreamostream等。
  • fstream头文件:从文件中读写数据,ifstreamofstream等。
  • sstream头文件:从字符串中读写数据,istringstreamostringstream

IO对象不可复制或赋值

  • IO对象不能存在容器里。
  • 形参和返回类型也不能是流类型。
  • 形参和返回类型一般是流的引用。
  • 读写一个IO对象会改变其状态,因此传递和返回的引用不能是const的。
解释一下这段日志,问题出在哪儿? 16:31:56.347 [main] DEBUG io.netty.util.ResourceLeakDetectorFactory -- Loaded default ResourceLeakDetector: io.netty.util.ResourceLeakDetector@4562e04d 16:31:56.355 [main] DEBUG io.netty.handler.logging.LoggingHandler -- [id: 0xembedded, L:embedded - R:embedded] WRITE: 4B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| 00 00 00 38 |...8 | +--------+-------------------------------------------------+----------------+ 16:31:56.357 [main] DEBUG io.netty.handler.logging.LoggingHandler -- [id: 0xembedded, L:embedded - R:embedded] WRITE: 56B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| 7b 22 6d 73 67 22 3a 22 48 65 6c 6c 6f 20 53 65 |{"msg":"Hello Se| |00000010| 72 76 65 72 22 2c 22 6c 61 73 74 6d 73 67 22 3a |rver","lastmsg":| |00000020| 22 4e 6f 6e 65 22 2c 22 66 72 6f 6d 22 3a 22 55 |"None","from":"U| |00000030| 73 65 72 31 32 33 22 7d |ser123"} | +--------+-------------------------------------------------+----------------+ 16:31:56.357 [main] DEBUG io.netty.handler.logging.LoggingHandler -- [id: 0xembedded, L:embedded - R:embedded] FLUSH 16:31:56.357 [main] DEBUG io.netty.handler.logging.LoggingHandler -- [id: 0xembedded, L:embedded - R:embedded] READ: 4B +-------------------------------------------------+ | 0 1 2 3 4 5 6 7 8 9 a b c d e f | +--------+-------------------------------------------------+----------------+ |00000000| 00 00 00 38 |...8 | +--------+-------------------------------------------------+----------------+ 16:31:56.362 [main] DEBUG io.netty.handler.logging.LoggingHandler -- [id: 0xembedded, L:embedded - R:embedded] READ COMPLETE 16:31:56.362 [main] INFO com.tp_link.netty.server.EchoHandler -- channelReadComplete 16:31:56.362 [main] DEBUG io.netty.handler.logging.LoggingHandler -- [id: 0xembedded, L:embedded - R:embedded] CLOSE 16:31:56.363 [main] DEBUG io.netty.handler.logging.LoggingHandler -- [id: 0xembedded, L:embedded ! R:embedded] INACTIVE 16:31:56.363 [main] DEBUG io.netty.handler.logging.LoggingHandler -- [id: 0xembedded, L:embedded ! R:embedded] UNREGISTERED
最新发布
08-26
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ThinkingF

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

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

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

打赏作者

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

抵扣说明:

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

余额充值