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

14.16 自测练习答案

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

14.1

a) 1、0。 b)位。 c)文件。d)字符。e) 数据库。f)close。g) get。h)get、getline。i)open。
j)read k) seekg、seekp。

14.2

a) 不正确。函数read可以从istream派生的任何输入流对象读取。
b) 不正确。这4个流自动生成。应在文件中包括<iostream.h>头文件,该文件首部包含了对这4个流对象的声明。
c) 不正确。流对象离开范围或程序执行终止前执行ifstream、ofstream和fstream对象的析构函数时关闭文件,但作为一个编程技巧,应在文件不再需要时立即用close关闭。
d) 不正确。成员函数seekp或seekg可以将put或get文件位置指针移到文件开头。
e) 正确。
f) 不正确。大多数情况下,顺序文件的记录没有统一的长度。因此,更新一条记录可能会重定义其他数据。
g) 正确。
h) 不正确。随机访问文件中的记录通常具有统一的长度。
i) 不正确。根据文件位置指针从文件起始点、结束点和当前点定位文件中的位置都是可能的。

14.3

a) ifstream inOldMaster( "oldmast.dat", ios::in);
b) ifstream inTransaction( "trans.dat", ios::in );
c) ofstream outNewMaster( "newmast.dat", ios::out );
d) inOldMaster >> accountNum >> name >> currentBalance;
e) inTransaction >> accountNum >> dollarAmount;
f) outNewMaster << accountNum << name << currentBalance;

14.4

a) 不正确:文件"payables.dat"没打开就试图向流输出数据。
纠正:用ostream函数open打开"payables.dat"以便输出。
b) 不正确:用不正确的istream对象从文件"payables.dat"读取记录。
纠正:用istream对象inPayable引用"payables.dat"。
c) 不正确:删除了文件内容,因为文件打开便会输出(ios::out)。
纠正:可以使用打开文件以便更新(ios::ate)或打开文件以便添加(ios::app)的方法将数据添加到文件中。