资料来自网络及《C++ Primer》,总结 BY 张瑞茂
C++文件操作
引子:
我们在 C++中经常会使用到各种 IO 操作,例如:
istream(输入流)类型,提供输入操作。
ostream(输出流)类型,提供输出操作。
cin 读入标准的 istream 对象。
cout 读入标准的 ostream 对象。
cerr 读出标准的错误的 ostream 对象。
getline 函数,需要分别取 istream 类型和 string 类型的两个引用形参,其功能是从
istream 对象读取一个单词,然后写入 string 对象中。
但是文件的读取确实我们不经常使用的。现在我就文件读取中的一些基本概念再次进行
简单总结。望这些总结对大家第一次的大作业会有所帮助。
在 C++中,有一个 stream 这个类,所有的 I/O 都以这个“流”类为基础的,包括我
们要认识的文件 I/O,stream 这个类有两个重要的运算符:
1、插入器(<<)
向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示
器(标准是输出到显示器),所以,cout<<"Write Stdout"<<'endl;就表示把字符串"Write
Stdout"输出到标准输出流。
2、析取器(>>)
从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘
(标准是从键盘读入),所以,cin>>x;就表示从标准输入流中读取一个指定类型(即变量 x 的
类型)的数据。
文件基本操作:
在 C++中,对文件的操作是通过 stream 的子类 fstream( file stream )来实现的,所
以,要用这种方式操作文件,就必须加入头文件 fstream(#include<fstream>)。下面就
把此类的文件操作过程一一道来。
一、打开文件
在 fstream 类中,有一个成员函数 open(),就是用来打开文件的,其原型是:
void open(const char* filename,int mode,int access);
参数:
filename: 要打开的文件名
mode: 要打开文件的方式
access: 打开文件的属性
打开文件的方式(mode)在类 ios(是所有流式 I/O 类的基类)中定义,常用的值如下:
ios::app: 以追加的方式打开文件
ios::ate: 文件打开后定位到文件尾,ios:app 就包含有此属性。
ios::binary:以二进制方式打开文件,缺省的方式是文本方式。