- iostream 标准库提供了 cin 和 cout 方法分别用于从标准输入读取流和向标准输出写入流。
·标准库 fstream定义了三个新的数据类型用于文件的访问。
·open() 函数是 fstream、ifstream 和 ofstream 对象的一个成员。open() 成员函数的第一参数指定要打开的文件的名称和位置,第二个参数定义文件被打开的模式。可以把以上两种或两种以上的模式结合使用。
void open(const char *filename, ios::openmode mode);
//以写入模式打开文件,并希望截断文件,以防文件已存在
ofstream outfile;
outfile.open("file.dat", ios::out | ios::trunc );
//打开一个文件用于读写
ifstream afile;
afile.open("file.dat", ios::out | ios::in );
· close() 函数用于关闭文件(通常应该在程序结束前关闭),close() 函数是 fstream、ifstream 和 ofstream 对象的一个成员。
void close();
·使用流插入运算符( << )向文件写入信息,使用的是 ofstream 或 fstream 对象,而不是 cout 对象;使用流提取运算符( >> )从文件读取信息,使用的是 ifstream 或 fstream 对象,而不是 cin 对象。
·istream 和 ostream 都提供了用于重新定位文件位置指针的成员函数,包括关于 istream 的 seekg(“seek get”)和关于 ostream 的 seekp(“seek put”)。
seekg 和 seekp 的参数通常是一个长整型。第二个参数可以用于指定查找方向。查找方向可以是 ios::beg(默认的,从流的开头开始定位),也可以是 ios::cur(从流的当前位置开始定位),也可以是 ios::end(从流的末尾开始定位)。
文件位置指针是一个整数值,指定了从文件的起始位置到指针所在位置的字节数。
// 定位到 fileObject 的第 n 个字节(假设是 ios::beg)
fileObject.seekg( n );
// 把文件的读指针从 fileObject 当前位置向后移 n 个字节
fileObject.seekg( n, ios::cur );
// 把文件的读指针从 fileObject 末尾往回移 n 个字节
fileObject.seekg( n, ios::end );
// 定位到 fileObject 的末尾
fileObject.seekg( 0, ios::end );
-
C+程序只检查字节流,而不需要知道字节来自何方;通过使用流,C++程序处理输出的方式将独立于其去向。管理输入的步骤:将流与输入去向的程序关联起来;将流与文件连接起来。
·缓冲区是用作中介的内存块,它是将信息从设备传输到程序或从程序传输给设备的临时存储工具。输出时,程序首先填满缓冲区,然后把整块数据传输给硬盘,并清空缓冲区,以备下一批输出使用,被称为刷新缓冲区(flushing the buffer)。
·C++程序通常在用户按下回车键时刷新输入缓冲区;对于屏幕输出,C++程序通常在用户发送换行符时刷新输出缓冲区。 -
插入运算符的所有化身的返回类型都是ostream&,即原型的格式如下。引用将指向用于调用该运算符的对象,这种特性使得能够通过插入来连接输出。
ostream& operator<<(type);
·除了各种operator<<()函数外,ostream类还提供了put()方法和write()方法,前者用于显示字符,后者用于显示字符串。cout是调用方法的对象,put()和write()是类成员函数。原型如下:
ostream& put(char);
basic ostream<charT,traits>& write(const char type*s,streamsize n);
·如果实现不能在所希望时刷新输出,可以使用两个控制符中的一个来强行进行刷新。
**控制符flush刷新缓冲区,而控制符endl刷新缓冲区,并插入一个换行符。**这两个控制符的使用方式与变量名相同。
cout <<"Hello,good-looking!"<< flush