当前位置: 首页 > 文档资料 > C++大学教程 >

14.13 章节小结

优质
小牛编辑
139浏览
2023-12-01

计算机处理的所有数据项最终都是0和1的组合。

可以认为计算机中的最小数据项是0和1,该数据项称为

数字、字母和专门的符号称为 字符。能够在特定计算机上用来编写程序和代表数据项的所有字符的集合称为“字符集”。因为计算机只能处理1和0,所以计算机字符集中的每一个字符都是用称为 字节 的8位O、1模式表示的。

一个域就是一组有意义的字符。

记录是一组相关的域。

每个记录中通常至少要选出一个域作为 记录关键字。记录关键字标识了文件中属于某人或某个实体的记录。

在文件中组织记录的最常用的方法是把记录组织成顺序访问文件。

为建立和管理数据库而设计的程序集合称为“数据库管理系统”(DBMS)。

C++ 语言把每一个文件都看成一个有序的字节流。

每一个文件根据与机器相关的文件结束符结束。

流提供文件与程序之间的通信通道。

要在 C++ 中进行文件的 I/O 处理.就要包括头文件 <iostream.h> 和 <fstream.h>。<fstream.h> 首部包括流类 ifstream、ofstream 和 fstream 的定义。

文件通过建立 ifstream、ofstreara fstream 流类对象而打开。

因为 C++ 把文件看着是无结构的字节流,所以记录等等的说法在C++语言中是不存在的。为此,程序员必须提供满足特定应用程序要求的文件结构。

通过生成 ofstream 对象打开文件以便输出。向对象传入两个参数——文件名和文件打开方式。
对于ofstream对象.文件打开方式可取ios::out(将数据输出到文件)或ios::app(将数据添加到文件末尾,而不修改文件中现有的数据)。现有文件用ios::out打开时会截尾,即文件中的所有数据均删除。如果指定文件还不存在,则用该文件名生成这个文件。

用ios运算符成员函数operator!确定打开操作是否成功。如果open操作的流将failbit或badbIt设置,则这个条件返回非0值(true)。

程序可以不处理文件、处理一个文件或处理几个文件。每个文件有惟一的名字,与相应的文件流对象相关联。所有文件处理函数还引用相应对象的文件。

istream类和ostream类都提供成员函数,使程序把“文件位置指针”重新定位。这些成员函数是istream类的seekg(“seek get”)和ostream类的seekp(“seek put”)。每个istream对象有一个get指针,表示文件中下一个输入相距的字节数;每个ostream对象有一个put指针,表示文件中下一个输出相距的字节数。

成员函数tellg和tellp分别返回“get”和“put”指针的当前位置。

实现随机访问文件的简便方法是只用定长记录。这样,程序就可以迅速计算记录相对于文件开头的具体位置。

可以在不破坏其他数据的情况下把数据插入到随机访问文件中。也能在不重写整个文件的情况下更新和删除以前存储的数据。ostream成员函数write把从内存中指定位置开始的固定个数的字节送到指定流中,当流与文件关联时,数据写入到“put”文件位置指针所指示的位置。

istream成员函数read把一定的字节数从指定流输人到内存中指定地址开始的区域。该字节从“get”文件位置指针指定的文件地址开始输入。

write函数要求一个const char*类型的参数为第一个参数,因此我们用强制类型转换运算符将其他类型的地址变为const char *指针。

编译时,一元运算符sizof返回括号中对象的长度(字节数),sizeof返回无符号整数。istream函数read从指定流的当前位置向对象输入指定字节数,read要求第个参数类型为char*。

ios成员函数eof确定是否到达文件末尾,如果读取文件时发生错误,则设置文件结束符。