今天在c++读写文件时遇到了一个问题,在这个上面遇到了解决方案,还得多多学习流机制啊。
数据流是建立在面向对象基础上的一种抽象的处理数据的工具。在流中,定义了一些处理数据的基本操作,如读取数据,写入数据等,程序员是对流进行所有操作的,而不用关心流的另一头数据的真正流向。流不但可以处理文件,还可以处理动态内存、网络数据等多种数据形式。如果你对流的操作非常熟练,在程序中利用流的方便性,写起程序会大大提高效率的。
在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:
1、插入器(<<) 向流输出数据。比如说系统有一个默认的标准输出流(cout),一般情况下就是指的显示器,所以,cout<<"Write Stdout"<<'\n';就表示把字符串"Write Stdout"和换行字符('\n')输出到标准输出流。 2、析取器(>>) 从流中输入数据。比如说系统有一个默认的 标准输入流 (cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中读取一个指定类型(即 变量 x的类型)的数据。在C++中,对文件的操作是通过stream的子类fstream(file stream)来实现的,所以,要用这种方式操作文件,就必须加入头文件fstream.h。
一、文件定位
和C的文件操作方式不同的是,C++ I/O系统管理有两个与某文件相联系的指针。
一个是读指针,它说明输入操作在文件中的位置;另一个是写指针,它指向下次写操作的位置。每次执行输入或输出时,相应的指针自动变化。
二、EOF()函数
成员函数eof()用来检测是否到达文件尾,如果到达文件尾返回非0值,否则返回0。原型是int eof() ;通过流对象调用该函数(方法);