《11-输入输出流.ppt》由会员分享,可在线阅读,更多相关《11-输入输出流.ppt(317页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009第第1111章章 输入输入/输出流输出流I/O(输入输入/输出)流类库提供对象之间的数据交互服务输出)流类库提供对象之间的数据交互服务流类库预定义了一批流对象,连接常用的外部设备流类库预定义了一批流对象,连接常用的外部设备程序员可以定义所需的程序员可以定义所需的I/O流对象,使用流库提供的工作方式流对象,使用流库提供的工作方式实现数据传输实现数据传输华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009第第1111章章 输
2、入输入/输出流输出流华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009 程序中,对数据的输入程序中,对数据的输入/输出是以字节流实现的输出是以字节流实现的 应用程序对字节序列作出各种数据解释应用程序对字节序列作出各种数据解释 I/OI/O系统的任务就是在内存和外部设备之间稳定可靠地传输数据系统的任务就是在内存和外部设备之间稳定可靠地传输数据 和解释数据。和解释数据。流类对象可以建立和删除,可以从流中获取数据和向流添加数据流类对象可以建立和删除,可以从流中获取数据和向流添加数据11.1 11.1 11.1 11.1 流类和流对象流类和流对象流类和流对象流类和流对象华南理
3、工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.1.1 11.1.1 流类库流类库流库(流库(streamlibrary)是用继承方法建立的输入输出类库是用继承方法建立的输入输出类库流库具有两个平行的基类:流库具有两个平行的基类:streambuf和和ios类,所有流类均以两者类,所有流类均以两者之一作为基类之一作为基类streambuf类提供对缓冲区的低级操作类提供对缓冲区的低级操作设置缓冲区设置缓冲区对缓冲区指针操作对缓冲区指针操作向缓冲区存向缓冲区存/取字符取字符ios类及其派生类提供用户使用流类的接口,支持对类及其派生类提供用户使用流类的接口,支持对stre
4、ambuf的缓的缓冲区输入冲区输入/输出的格式化或非格式化转换输出的格式化或非格式化转换华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009streambuf1.1.streambufstreambuf对缓冲区的低级操作对缓冲区的低级操作11.1.1 11.1.1 流类库流类库filebufstrstreambufstdiobuf华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009streambuf1.1.streambufstreambuf对缓冲区的低级操作对缓冲区的低级操作11.1.1 11.1.1 流类库流类库filebuffilebufs
5、trstreambufstdiobuf文件文件缓缓冲区冲区管理管理华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009streambuf1.1.streambufstreambuf对缓冲区的低级操作对缓冲区的低级操作11.1.1 11.1.1 流类库流类库filebufstrstreambufstrstreambufstdiobuf字符串字符串缓缓冲区冲区管理管理华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009streambuf1.1.streambufstreambuf对缓冲区的低级操作对缓冲区的低级操作11.1.1 11.1.1 流类库流
6、类库filebufstrstreambufstdiobufstdiobuf标准标准I/OI/O缓缓冲区冲区管理管理华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.1.1 11.1.1 流类库流类库2.2.iosios提供用户接口提供用户接口iosistreamostreamiostreamfstreamstrstreamstdiostreamistream_withassignifstreamistrstreamostream_withassignofstreamostrstream华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 200920091
7、1.1.1 11.1.1 流类库流类库2.2.iosios提供用户接口提供用户接口iosistreamistreamostreamostreamiostreamfstreamstrstreamstdiostreamistream_withassignifstreamistrstreamostream_withassignofstreamostrstream输入流输入流输出流输出流华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.1.1 11.1.1 流类库流类库2.2.iosios提供用户接口提供用户接口iosistreamostreamiostreamfstr
8、eamstrstreamstdiostreamistream_withassignifstreamifstreamistrstreamistrstreamostream_withassignofstreamofstreamostrstreamostrstream输入流输入流输出流输出流输入文件流输入文件流输入串流输入串流输出串流输出串流输出文件流输出文件流华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.1.1 11.1.1 流类库流类库2.2.iosios提供用户接口提供用户接口iosistreamostreamiostreamiostreamfstreams
9、trstreamstdiostreamistream_withassignifstreamistrstreamostream_withassignofstreamostrstream输入流输入流输出流输出流输入文件流输入文件流输入串流输入串流输出串流输出串流输出文件流输出文件流输入输入/输出流输出流华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.1.1 11.1.1 流类库流类库2.2.iosios提供用户接口提供用户接口iosistreamostreamiostreamfstreamfstreamstrstreamstrstreamstdiostreamst
10、diostreamistream_withassignifstreamistrstreamostream_withassignofstreamostrstream输入流输入流输出流输出流输入文件流输入文件流输入串流输入串流输出串流输出串流输出文件流输出文件流输入输入/输出流输出流输入输入/输出文件流输出文件流输入输入/输出串流输出串流标准输入标准输入/输出流输出流华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.1.1 11.1.1 流类库流类库2.2.iosios提供用户接口提供用户接口iosistreamostreamiostreamfstreamstrst
11、reamstdiostreamistream_withassignistream_withassignifstreamistrstreamostream_withassignostream_withassignofstreamostrstream输入流输入流输出流输出流输入文件流输入文件流输入串流输入串流输出串流输出串流输出文件流输出文件流输入输入/输出流输出流输入输入/输出文件流输出文件流输入输入/输出串流输出串流标准输入标准输入/输出流输出流重载运算符重载运算符“=”重载运算符重载运算符“=”华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.1.1 11.1
12、.1 流类库流类库2.2.iosios提供用户接口提供用户接口iosistreamostreamiostreamfstreamstrstreamstdiostreamistream_withassignifstreamistrstreamostream_withassignofstreamostrstream输入流输入流输出流输出流输入文件流输入文件流输入串流输入串流输出串流输出串流输出文件流输出文件流输入输入/输出流输出流输入输入/输出文件流输出文件流输入输入/输出串流输出串流标准输入标准输入/输出流输出流重载运算符重载运算符“=”重载运算符重载运算符“=”华南理工大学计算机学院华南理工大学
13、计算机学院 周霭如周霭如 2009200911.1.2 11.1.2 头文件头文件iostream.h包含操作所有输入包含操作所有输入/输出流所需的基本信息输出流所需的基本信息含有含有cin、cout、cerr、clog对象,提供无格式和格式化的对象,提供无格式和格式化的I/Oiomanip.h包含格式化包含格式化I/O操纵算子,用于指定数据输入输出的格式操纵算子,用于指定数据输入输出的格式fstream.h处理文件信息,包括建立文件,读处理文件信息,包括建立文件,读/写文件的各种操作接口写文件的各种操作接口每种每种C+版本还包含其他一些与版本还包含其他一些与I/O相关的库,提供特定系统的某些
14、功能相关的库,提供特定系统的某些功能华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009 标准流是标准流是C+预定义的对象,提供内存与外部设备进行数据交互功能预定义的对象,提供内存与外部设备进行数据交互功能 流的操作是流类的公有成员函数流的操作是流类的公有成员函数 11.2 11.2 11.2 11.2 标准流和流操作标准流和流操作标准流和流操作标准流和流操作华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.2.1 11.2.1 标准流标准流_内存内存_istre
15、amcinostreamcout标准输入流标准输入流标准输出流标准输出流 标准流为用户常用的外部设备提供与内存标准流为用户常用的外部设备提供与内存之间的通信通道,对数据进行解释和传输,之间的通信通道,对数据进行解释和传输,提供必要数据缓冲提供必要数据缓冲华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.2.1 11.2.1 标准流标准流(1)cinistream类类的对象,通常连向键盘,可以重定向的对象,通常连向键盘,可以重定向(2)coutostream类类的对象,通常连向显示器,可以重定向的对象,通常连向显示器,可以重定向(3)cerrostream类类的对
16、象,连向显示器。不能重定向的对象,连向显示器。不能重定向(4)clogostream类类的对象,连向打印机。不能重定向的对象,连向打印机。不能重定向重定向重定向重定向重定向操作见附录操作见附录操作见附录操作见附录A2.4A2.4华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009函数功能read无格式输入指定字节数get从流中提取字符,包括空格getline从流中提取一行字符ignore提取并丢弃流中指定字符peek返回流中下一个字符,但不从流中删除gcount统计最后输入的字符个数eatwhite忽略前导空格seekg移动输入流指针tellg返回输入流中指定位置的指针
17、值operstor提取运算符istreamistream类的公有成员函数类的公有成员函数 11.2.2 11.2.2 输入流操作输入流操作 华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009函数函数功能功能readread无格式无格式无格式无格式输输输输入指定字入指定字入指定字入指定字节节节节数数数数get从流中提取字符,包括空格getline从流中提取一行字符ignore提取并丢弃流中指定字符peek返回流中下一个字符,但不从流中删除gcount统计最后输入的字符个数eatwhite忽略前导空格seekg移动输入流指针tellg返回输入流中指定位置的指针值opers
18、tor提取运算符istream&read(char*pch,int nCount);istream&read(unsigned char*puch,int nCount);istream&read(signed char*psch,int nCount);istreamistream类的公有成员函数类的公有成员函数 11.2.2 11.2.2 输入流操作输入流操作 华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.2.2 11.2.2 输入流操作输入流操作 函数函数功能功能read无格式输入指定字节数getget从流中提取字符,包括空格从流中提取字符,包括空格从
19、流中提取字符,包括空格从流中提取字符,包括空格getline从流中提取一行字符ignore提取并丢弃流中指定字符peek返回流中下一个字符,但不从流中删除gcount统计最后输入的字符个数eatwhite忽略前导空格seekg移动输入流指针tellg返回输入流中指定位置的指针值operstor提取运算符int get();istream&get(char*pch,int nCount,char delim=n);istream&get(unsigned char*puch,int nCount,char delim=n);istream&get(signed char*psch,int nCo
20、unt,char delim=n);istream&get(char&rch);istream&get(unsigned char&ruch);istream&get(signed char&rsch);istream&get(streambuf&rsb,char delim=n);istreamistream类的公有成员函数类的公有成员函数 华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.2.2 11.2.2 输入流操作输入流操作 函数函数功能功能read无格式输入指定字节数get从流中提取字符,包括空格getlinegetline从流中提取一行字符从流中提
21、取一行字符从流中提取一行字符从流中提取一行字符ignore提取并丢弃流中指定字符peek返回流中下一个字符,但不从流中删除gcount统计最后输入的字符个数eatwhite忽略前导空格seekg移动输入流指针tellg返回输入流中指定位置的指针值operstor提取运算符istream&getline(char*pch,int nCount,char delim=n);istream&getline(unsigned char*puch,int nCount,char delim=n);istream&getline(signed char*psch,int nCount,char delim
22、=n);istreamistream类的公有成员函数类的公有成员函数 华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.2.2 11.2.2 输入流操作输入流操作 函数函数功能功能read无格式输入指定字节数get从流中提取字符,包括空格getline从流中提取一行字符ignoreignore提取并提取并提取并提取并丢丢丢丢弃流中指定字符弃流中指定字符弃流中指定字符弃流中指定字符peek返回流中下一个字符,但不从流中删除gcount统计最后输入的字符个数eatwhite忽略前导空格seekg移动输入流指针tellg返回输入流中指定位置的指针值operstor提取
23、运算符istream&ignore(int nCount=1,int delim=EOF);istreamistream类的公有成员函数类的公有成员函数 华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.2.2 11.2.2 输入流操作输入流操作 函数函数功能功能read无格式输入指定字节数get从流中提取字符,包括空格getline从流中提取一行字符ignore提取并丢弃流中指定字符peekpeek返回流中下一个字符,但不从流中返回流中下一个字符,但不从流中返回流中下一个字符,但不从流中返回流中下一个字符,但不从流中删删删删除除除除gcount统计最后输入的字
24、符个数eatwhite忽略前导空格seekg移动输入流指针tellg返回输入流中指定位置的指针值operstor提取运算符int peek();istreamistream类的公有成员函数类的公有成员函数 华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.2.2 11.2.2 输入流操作输入流操作 函数函数功能功能read无格式输入指定字节数get从流中提取字符,包括空格getline从流中提取一行字符ignore提取并丢弃流中指定字符peek返回流中下一个字符,但不从流中删除gcountgcount统计统计统计统计最后最后最后最后输输输输入的字符个数入的字符个
25、数入的字符个数入的字符个数eatwhite忽略前导空格seekg移动输入流指针tellg返回输入流中指定位置的指针值operstor提取运算符int gcount()const;istreamistream类的公有成员函数类的公有成员函数 华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.2.2 11.2.2 输入流操作输入流操作 函数函数功能功能read无格式输入指定字节数get从流中提取字符,包括空格getline从流中提取一行字符ignore提取并丢弃流中指定字符peek返回流中下一个字符,但不从流中删除gcount统计最后输入的字符个数eatwhitee
26、atwhite忽略前忽略前忽略前忽略前导导导导空格空格空格空格seekg移动输入流指针tellg返回输入流中指定位置的指针值operstor提取运算符void eatwhite();istreamistream类的公有成员函数类的公有成员函数 华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.2.2 11.2.2 输入流操作输入流操作 函数函数功能功能read无格式输入指定字节数get从流中提取字符,包括空格getline从流中提取一行字符ignore提取并丢弃流中指定字符peek返回流中下一个字符,但不从流中删除gcount统计最后输入的字符个数eatwhit
27、e忽略前导空格seekgseekg移移移移动输动输动输动输入流指入流指入流指入流指针针针针tellg返回输入流中指定位置的指针值operstor提取运算符istream&seekg(streampos pos);istream&seekg(streamoff off,ios:seek_dir dir);istreamistream类的公有成员函数类的公有成员函数 华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.2.2 11.2.2 输入流操作输入流操作 函数函数功能功能read无格式输入指定字节数get从流中提取字符,包括空格getline从流中提取一行字符i
28、gnore提取并丢弃流中指定字符peek返回流中下一个字符,但不从流中删除gcount统计最后输入的字符个数eatwhite忽略前导空格seekg移动输入流指针tellgtellg返回返回返回返回输输输输入流中指定位置的指入流中指定位置的指入流中指定位置的指入流中指定位置的指针值针值针值针值operstor提取运算符streampos tellg();longintistreamistream类的公有成员函数类的公有成员函数 华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009istreamistream类的公有成员函数类的公有成员函数 11.2.2 11.2.2 输入
29、流操作输入流操作 函数函数功能功能read无格式输入指定字节数get从流中提取字符,包括空格getline从流中提取一行字符ignore提取并丢弃流中指定字符peek返回流中下一个字符,但不从流中删除gcount统计最后输入的字符个数eatwhite忽略前导空格seekg移动输入流指针tellg返回输入流中指定位置的指针值operstoroperstor提取运算符提取运算符提取运算符提取运算符basic_istream&operator(basic_istream&(*pf)(basic_istream&);basic_istream&operator(basic_ios&(*pf)(basi
30、c_ios&);basic_istream&operator(ios_base&(*pf)(ios_base&);basic_istream&operator(basic_streambuf*sb);basic_istream&operator(bool&n);basic_istream&operator(short&n);basic_istream&operator(unsigned short&n);basic_istream&operator(int&n);basic_istream&operator(unsigned int&n);basic_istream&operator(long
31、&n);basic_istream&operator(unsigned long&n);basic_istream&operator(void*&n);basic_istream&operator(float&n);basic_istream&operator(double&n);basic_istream&operator(long double&n);华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009/例例11-1 用用get函数从键盘输入字符函数从键盘输入字符#includeusingnamespacestd;intmain()charc;coutEnterfi
32、rstsentencefollowedbyEntern;while(c=cin.get()!=n)cout.put(c);coutendl;coutEntersecondsentencefollowedbyEntern;while(cin.get(c)if(c=n)break;cout.put(c);coutendl;coutEnterthirdsentencefollowedbyEntern;chars80;cin.get(s,10);coutsendl;11.2.2 输入流操作华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009/例例11-1 用用get函数从键盘输
33、入字符函数从键盘输入字符#includeusing namespace std;int main()char c;cout Enter first sentence followed by Entern;while(c=cin.get()!=n)cout.put(c);cout endl;cout Enter second sentence followed by Entern;while(cin.get(c)if(c=n)break;cout.put(c);cout endl;cout Enter third sentence followed by Entern;char s 80 ;ci
34、n.get(s,10);cout s endl;11.2.2 输入流操作输入输入华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009/例例11-1 用用get函数从键盘输入字符函数从键盘输入字符#includeusing namespace std;int main()char c;cout Enter first sentence followed by Entern;while(c=cin.get()!=n)cout.put(c);cout endl;cout Enter second sentence followed by Entern;while(cin.ge
35、t(c)if(c=n)break;cout.put(c);cout endl;cout Enter third sentence followed by Entern;char s 80 ;cin.get(s,10);cout s endl;11.2.2 输入流操作输出输出华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009/例例11-1 用用get函数从键盘输入字符函数从键盘输入字符#includeusing namespace std;int main()char c;cout Enter first sentence followed by Entern;whil
36、e(c=cin.get()!=n)cout.put(c);cout endl;cout Enter second sentence followed by Entern;while(cin.get(c)if(c=n)break;cout.put(c);cout endl;cout Enter third sentence followed by Entern;char s 80 ;cin.get(s,10);cout s endl;11.2.2 输入流操作华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009/例例11-1 用用get函数从键盘输入字符函数从键盘输入字符#
37、includeusing namespace std;int main()char c;cout Enter first sentence followed by Entern;while(c=cin.get()!=n)cout.put(c);cout endl;cout Enter second sentence followed by Entern;while(cin.get(c)if(c=n)break;cout.put(c);cout endl;cout Enter third sentence followed by Entern;char s 80 ;cin.get(s,10);c
38、out s endl;11.2.2 输入流操作指定输入字符数指定输入字符数华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009/例例11-1 用用get函数从键盘输入字符函数从键盘输入字符#includeusing namespace std;int main()char c;cout Enter first sentence followed by Entern;while(c=cin.get()!=n)cout.put(c);cout endl;cout Enter second sentence followed by Entern;while(cin.get(c
39、)if(c=n)break;cout.put(c);cout endl;cout Enter third sentence followed by Entern;char s 80 ;cin.get(s,10);cout s endl;11.2.2 输入流操作输出字符串输出字符串华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009函数功能put无格式,插入一个字节write从无格式,插入一字节序列flush刷新输出流seekp移动输出流指针tellp返回输出流中指定位置的指针值operstor插入运算符ostreamostream类的公有成员函数类的公有成员函数 11.
40、11.2.32.3 输出流操作输出流操作华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.11.2.32.3 输出流操作输出流操作函数函数功能功能putput无格式无格式无格式无格式,插入一个字插入一个字插入一个字插入一个字节节节节write从无格式,插入一字节序列flush刷新输出流seekp移动输出流指针tellp返回输出流中指定位置的指针值operstor插入运算符ostream&put(char ch);ostreamostream类的公有成员函数类的公有成员函数 华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.11.2
41、.32.3 输出流操作输出流操作函数函数功能功能put无格式,插入一个字节writewrite从无格式从无格式从无格式从无格式,插入一字插入一字插入一字插入一字节节节节序列序列序列序列flush刷新输出流seekp移动输出流指针tellp返回输出流中指定位置的指针值operstor插入运算符ostreamostream类的公有成员函数类的公有成员函数 ostream&write(const char*pch,int nCount);ostream&write(const unsigned char*puch,int nCount);ostream&write(const signed char
42、*psch,int nCount);华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.11.2.32.3 输出流操作输出流操作函数函数功能功能put无格式,插入一个字节write从无格式,插入一字节序列flushflush刷新刷新刷新刷新输输输输出流出流出流出流seekp移动输出流指针tellp返回输出流中指定位置的指针值operstor插入运算符ostreamostream类的公有成员函数类的公有成员函数 ostream&flush();华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.11.2.32.3 输出流操作输出流操作函
43、数函数功能功能put无格式,插入一个字节write从无格式,插入一字节序列flush刷新输出流seekpseekp移移移移动输动输动输动输出流指出流指出流指出流指针针针针tellp返回输出流中指定位置的指针值operstor插入运算符ostreamostream类的公有成员函数类的公有成员函数 ostream&seekp(streampos pos);ostream&seekp(streamoff off,ios:seek_dir dir);华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.11.2.32.3 输出流操作输出流操作函数函数功能功能put无格式,插
44、入一个字节write从无格式,插入一字节序列flush刷新输出流seekp移动输出流指针tellptellp返回返回返回返回输输输输出流中指定位置的指出流中指定位置的指出流中指定位置的指出流中指定位置的指针值针值针值针值operstor插入运算符ostreamostream类的公有成员函数类的公有成员函数 streampos tellp();华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.11.2.32.3 输出流操作输出流操作函数函数功能功能put无格式,插入一个字节write从无格式,插入一字节序列flush刷新输出流seekp移动输出流指针tellp返回
45、输出流中指定位置的指针值operstoroperstor插入运算符插入运算符插入运算符插入运算符ostreamostream类的公有成员函数类的公有成员函数 basic_ostream&operator(basic_ostream&(*pf)(basic_ostream&);basic_ostream&operator(basic_ios&(*pf)(basic_ios&);basic_ostream&operator(ios_base&(*pf)(ios_base&);basic_ostream&operator(basic_streambuf*sb);basic_ostream&opera
46、tor(const char*s);basic_ostream&operator(char c);basic_ostream&operator(bool n);basic_ostream&operator(short n);basic_ostream&operator(unsigned short n);basic_ostream&operator(int n);basic_ostream&operator(unsigned int n);basic_ostream&operator(long n);basic_ostream&operator(unsigned long n);basic_o
47、stream&operator(float n);basic_ostream&operator(double n);basic_ostream&operator(long double n);basic_ostream&operator(void*n);华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.11.2.32.3 输出流操作输出流操作/例例11-2#includeusing namespace std;int main()cout Enter a sentence followed by Entern;char s 26 ;cin.getline(s,2
48、6);cout.write(s,26);coutendl;华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.11.2.42.4 流错误状态流错误状态错误状态字描述错误状态字描述 标识常量标识常量值值意义意义goodbit0 x00状状态态正常正常eofbit0 x01文件文件结结束符束符failbit0 x02I/O操作失操作失败败,数据未,数据未丢丢失,可以恢复失,可以恢复badbit0 x04非法操作,数据非法操作,数据丢丢失,不可恢复失,不可恢复00000000000000000000000000000001000000000000001000000000
49、00000100华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 2009200911.11.2.42.4 流错误状态流错误状态iosios 处理流错误状态的公有成员函数处理流错误状态的公有成员函数 函数函数功能功能int eof()const;返回返回eofbit状状态值态值。文件文件结结束符束符时时返回返回1,否,否则则返回返回0 int fail()const;返回返回failbit状状态值态值int good()const;int operator void*();eofbit、failbit和和badbit都没有被都没有被设设置,置,则则返回返回1 int bad()con
50、st;int operator!();eofbit、failbit或或badbit其中一个被其中一个被设设置,置,则则返回返回1 int rdstate()const;返回状返回状态态字字void clear(int nState=0);恢复或恢复或设设置状置状态态字字华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009华南理工大学计算机学院华南理工大学计算机学院 周霭如周霭如 20092009ios提供直接设置标志字的控制格式函数提供直接设置标志字的控制格式函数iostream和和iomanip库还提供了一批控制符简化库还提供了一批控制符简化I/O格式化操作格式化操作