[C++ Primer] 标准IO库

1.IO对象不可复制或赋值,由于不能复制所以流对象不能存储在vector等容器中,而且函数形参或返回类型也不能为流类型,如果需要传递或者返回IO对象,则必须传递或者返回该对象的指针或者引用。

2.如果在一个循环中读取若干个文件,且打算重用已存在的流对象,那么必须在每次循环结束后关闭(close)和清空(clear)文件流。原因在于如果遇到文件结束符或者其他错误,将设置流的内部状态使得不能再对该流对象做读写操作,关闭流并不能改变流的内部状态,如果上次循环文件读取完毕或者遇到错误,那么流对象将保持为错误状态(循环就不能读取下一个文件了)直到执行clear操作(必须在close之前执行),clear相当于重新创建了该对象一样。

3.文件的输入和输出:由于历史原因,IO标准库使用是C语言风格的字符串而不是C++风格的string字符串作为文件名,在创建fstream对象时,如果调用open或者使用文件名作初始化式时需要传递的实参应为C风格字符串而不是string对象(当然string对象也可以通过调用c_str类型转化为C风格字符串),记得打开文件后检查文件流对象状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值