第九章C++的I/O流库 主要内容 ●流的基本概念:C+十流的基本概念、C++流类库的结构以及预定义的4各流对象 ·输出流:预定义的插入符的基本语法格式、输出指针类型的地址,以及put()函数和 write()函数。 ●输入流:预定义的提取符的基本语法格式,以及get()函数、getline()函数和read ()函数 ●自定义输入输出(插入符和提取符的重载):重载为友元函数的插入符和提取符的格式 及其调用方法 ●输入输出的格式控制:使用各种流类中有关格式控制的成员函数设置标志位,以及使 用流类库提供的操作子进行格式控制 ●磁盘文件的输入和输出:磁盘文件的打开和关闭操作、文本文件的读写操作、二进制文 件的读写操作,以及随机访问数据文件。 ●字符串流:将串对象中的一个字符串内的数字字符转换成二进制形式存储在某种类型的 对象中,以及将一个二进制数据转换成字符存储在一个字符数组对象中的操作。 ●流错误的处理:流状态字和状态函数以及清除/设置流状态字 填空 1C++语言本身没有定义I/O操作,但I/O操作包含在C++实现中。C++标准库iostream:提 供了基本的/O类。I/O操作分别由两个类istream和①提供,由它们派生除一个类②, 提供双向I/O操作。 A fstream B iostream C ostream D cin 答案:①C ②B 2己知inta,pa=&a;输出指针pa十进制的地址值的方法是一。 A cout.str, 当输入为:This is a program,所得到的结果是str=_ AThis is a program B This C This is D This is a 答案:B 注释:提取符可以从输入流中读取一个字符序列,即一个字符串。在处理这种字符序列时, 字符串被认为是一个以空白符结束的字符序列。因此本题得到的输入仅仅是第一个空白符之 前的字符序列This。 4内部格式控制操作函数是在头文件中定义的。 A iostream.h B iomanip.h C istream.h D ostream.h 答案:B 5进行文件操作需包含头文件。 A fstream.h B ostream.h C stdio.h D stdlib.h 答案:A
第九章 C++的 I/O 流库 主要内容 z 流的基本概念:C++流的基本概念、C++流类库的结构以及预定义的 4 各流对象 z 输出流:预定义的插入符的基本语法格式、输出指针类型的地址,以及 put()函数和 write()函数。 z 输入流:预定义的提取符的基本语法格式,以及 get()函数、getline()函数和 read ()函数 z 自定义输入/输出(插入符和提取符的重载):重载为友元函数的插入符和提取符的格式 及其调用方法 z 输入/输出的格式控制:使用各种流类中有关格式控制的成员函数设置标志位,以及使 用流类库提供的操作子进行格式控制 z 磁盘文件的输入和输出:磁盘文件的打开和关闭操作、文本文件的读写操作、二进制文 件的读写操作,以及随机访问数据文件。 z 字符串流:将串对象中的一个字符串内的数字字符转换成二进制形式存储在某种类型的 对象中,以及将一个二进制数据转换成字符存储在一个字符数组对象中的操作。 z 流错误的处理:流状态字和状态函数以及清除/设置流状态字 填空 1 C++语言本身没有定义I/O操作,但I/O操作包含在C++实现中。C++标准库iostream提 供了基本的I/O类。I/O操作分别由两个类istream和 ① 提供,由它们派生除一个类 ② , 提供双向I/O操作。 A fstream B iostream C ostream D cin 答案:① C ② B 2 已知 int a,*pa=&a;输出指针 pa 十进制的地址值的方法是 。 A cout.str; 当输入为:This is a program,所得到的结果是 str= 。 A This is a program B This C This is D This is a 答案:B 注释:提取符可以从输入流中读取一个字符序列,即一个字符串。在处理这种字符序列时, 字符串被认为是一个以空白符结束的字符序列。因此本题得到的输入仅仅是第一个空白符之 前的字符序列 This。 4 内部格式控制操作函数是在头文件 中定义的。 A iostream.h B iomanip.h C istream.h D ostream.h 答案:B 5 进行文件操作需包含头文件 。 A fstream.h B ostream.h C stdio.h D stdlib.h 答案 :A 1
6当使用ifstream流定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为一。 A ios::in B ios::out C ios::inlios:out D ios::binary 答案:A 注释:使用ofstream类打开文件时,隐含打开方式是ios:out:使用fstream类打开文件时, 隐含打开方式是ios:inios::out:ios:binary是以二进制方式打开文件。 填空 1C++的输入输出是以字节流的形式实现的。在C十+流类库中,根基类为0s类。 2与系统中标准设备对应的四个对象是cin、cout、cerr和clog 3重载运算符函数operator>.>的一般格式为 istream&operator>>(istream&s,type&p) ∥操作代码 return s: 4头文件fstream.h中包含了处理用户控制文件操作所需要的信息。 阅读程序 1写出运行结果 include include void main() cout include void main ( char str[100]; 2
6 当使用 ifstream 流定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为 。 A ios::in B ios::out C ios::in|ios::out D ios::binary 答案:A 注释:使用 ofstream 类打开文件时,隐含打开方式是 ios::out;使用 fstream 类打开文件时, 隐含打开方式是 ios::in|ios::out;ios::binary 是以二进制方式打开文件。 填空 1 C++的输入/输出是以字节流的形式实现的。在C++流类库中,根基类为ios类。 2 与系统中标准设备对应的四个对象是 cin 、 cout 、cerr和clog 3 重载运算符函数 operator>>的一般格式为 istream& operator>>(istream& s,type& p) { //操作代码 return s: } 4 头文件fstream.h中包含 了处理用户控制文件操作所需要的信息。 阅读程序 1 写出运行结果 # include # include void main() { cout # include void main () { char str[100]; 2
fstream out("abc.txt""ios::in ios::out); out include include include void main() { int r;char c; fstream file: char fn[10],buf[100]; cout>fn: file.open(fn,ios::nocreatelios::in); if(!file) cout<”指定的文件不存在”<endl; abort(). } while (!file.eof()) { 0; while(!file.eof()&&r<23) { file.getline(buf,100); cout<<buf<<endl: r++; 3
fstream out(“abc.txt”’ios::in|ios::out); out # include # include # include void main( ) { int r;char c; fstream file; char fn[10],buf[100]; cout>fn; file.open(fn,ios::nocreate|ios::in); if(!file) { cout<<”指定的文件不存在”<<endl; abort(); } while (!file.eof()) { r=0; while(!file.eof() && r<23) { file.getline(buf,100); cout<<buf<<endl; r++; } 3
printf("Press a key..."); c=getchar(); file.close(), } 程序执行结果(本题程序的文件名为ch8-8.cpp) 输入文件名:ch8-8.cpp include include include include void main() { int r;char c; fstream file: char fn[10],bufT100]; cout>fn; file.open(fn,ios::nocreatelios::in); if(!file) { cout<”指定的文件不存在”<<endl; abort(); } while (!file.eof() { r=0: while(!file.eof()&&r<23) { file.getline(buf,100); Press a key... 4
printf(“Press a key…”); c=getchar(); } file.close(); } 程序执行结果(本题程序的文件名为 ch8-8.cpp ) 输入文件名:ch8-8.cpp # include # include # include # include void main( ) { int r;char c; fstream file; char fn[10],buf[100]; cout>fn; file.open(fn,ios::nocreate|ios::in); if(!file) { cout<<”指定的文件不存在”<<endl; abort(); } while (!file.eof()) { r=0; while(!file.eof() && r<23) { file.getline(buf,100); Press a key… 4