先阅读 iostream的工程实践,论述了isotream的用途与局限,与c语言io的对比(more effetive c++ item23也有论述)
关键问题1:如果文件不存在,三种流如何处理? 关键问题2:文件中已有内容,对文件读写时如何控制从何处开始?
ps1: fstream头文件不包含有ifstream和ofstream,后者不是前者的子类
ps2: iostream头文件自动包含了istream和ostream,cin 是istream对象,cout是ostream对象
ps3: io流对象不可拷贝、赋值,fstream fs= fs1不能通过编译,它的copy ctr已经delete
ps4:流的操作是内存到流(如cout, ofstream );流到内存(如cin,ifstream) ;两个文件流之间如何输入输出暂时不知。
ps5: 打开文件——读写文件——关闭文件(用流的close函数)
ofstream: 只写模式打开文件,如果文件不存在,可以创建文件
第二个参数为打开模式,可以不写,用默认的;要判断文件是否创建或打开成功,用上面的判断就可以;下面的open函数也可以打开文件
ifstream: 只读模式打开文件,
如果文件不存在,不会创建,不能创建空文件读构造函数创建输出文件流
先用default ctr,再用open函数
fstream: 读/写模式打开文件,
如果文件不存在,已只读模式打开可以创建,以读/写或写模式不能创建空文件fstream的构造函数原型:
http://en.cppreference.com/w/cpp/io/basic_fstream/basic_fstream 默认参数就是读写模式
只读模式可以创建新文件
下面例子的过程是 ofstream 创建新文件,写入字符串; ifstream 读取该文件,并把内容显示到屏幕;fstream打开已存在的文件进行读写
如果文件中已有内容,读写时需要注意打开模式
:如果你不具体指明文件的打开模式,fstream类会使用缺省模式。例如,ifstream在缺省情况下会以读的模式打开一个文件,并把文件指针定在文件的起始处。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/4328.html