当前位置:嗨网首页>书籍在线阅读

16-文件输入和输出

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

17.4 文件输入和输出

大多数计算机程序都使用了文件。字处理程序创建文档文件;数据库程序创建和搜索信息文件;编译器读取源代码文件并生成可执行文件。文件本身是存储在某种设备(磁带、光盘、软盘或硬盘)上的一系列字节。通常,操作系统管理文件,跟踪它们的位置、大小、创建时间等。除非在操作系统级别上编程,否则通常不必担心这些事情。需要的只是将程序与文件相连的途径、让程序读取文件内容的途径以及让程序创建和写入文件的途径。重定向(本章前面讨论过)可以提供一些文件支持,但它比显式程序中的文件I/O的局限性更大。另外,重定向来自操作系统,而非C++,因此并非所有系统都有这样的功能。本书前面简要地介绍过文件I/O,本章将更详细地探讨这个主题。

C++ I/O类软件包处理文件输入和输出的方式与处理标准输入和输出的方式非常相似。要写入文件,需要创建一个ofstream对象,并使用ostream方法,如<<插入运算符或write()。要读取文件,需要创建一个ifstream对象,并使用istream方法,如>>抽取运算符或get()。然而,与标准输入和输出相比,文件的管理更为复杂。例如,必须将新打开的文件和流关联起来。可以以只读模式、只写模式或读写模式打开文件。写文件时,可能想创建新文件、取代旧文件或添加到旧文件中,还可能想在文件中来回移动。为帮助处理这些任务,C++在头文件fstream(以前为fstream.h)中定义了多个新类,其中包括用于文件输入的ifstream类和用于文件输出的ofstream类。C++还定义了一个fstream类,用于同步文件I/O。这些类都是从头文件iostream中的类派生而来的,因此这些新类的对象可以使用前面介绍过的方法。