现在的位置: 首页 > 综合 > 正文

[C++ Primer] 标准IO库

2018年04月03日 ⁄ 综合 ⁄ 共 486字 ⁄ 字号 评论关闭

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

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

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

抱歉!评论已关闭.