方式 | 作用 |
---|---|
ios::in | 以输入方式打开文件 |
ios::out | 以输出方式打开文件(这是默认方式),如果已有此名字的文件,则将其原有内容全部清除 |
ios::app | 以输出方式打开文件,写入的数据添加在文件末尾 |
ios::ate | 打开一个已有的文件,文件指针指向文件末尾 |
ios::trunc | 打开一个文件,如果文件已存在,则删除其中全部数据,如文件不存在,则建立新文件。如已指定了ios::out方式,而未指定ios::app、ios::ate、ios::in,则同时默认此方式 |
ios::nocreate | 打开一个已有的文件,如文件不存在,则打开失败。nocreate的意思就是不建立新文件 |
ios::noreplace | 如果文件不存在则建立新文件,如果文件已存在则操作失败,noreplace的意思是不更新原有文件 |
ios::in|ios::out | 以输入和输出方式打开文件,文件可读写 |
ios::out|ios::binary | 以二进制的方式打开一个输出文件 |
ios::in|ios::binary | 以二进制的方式打开一个输入文件 |
提示
- 新版本C++系统已经不提供ios::nocreate和ios::noreplace了。
- 每一个打开的文件都有一个文件指针,该指针的初始位置由I/O方式指定,每次读写都是从指针的当前位置开始。每读入一个字节,指针就向后移一个字节。当文件指针移到最后,就会遇到文件结束符EOF(文件结束符也占一个字节,其值为-1),表示文件结束了。
- 可以用“位或”运算符对输入输出方式进行组合,但是不能组合互相排斥的方式,如ios::nocreate|ios::noreplace。
- 如果文件操作失败,open函数的返回值为0(假),如果是调用构造函数的方式打开文件的,则流对象的值为0.可以据此测试打开是否成功。