- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章C输入输出流
第5章 C++的输入/输出流
重点
1.输入/输出操作符的使用
2.输入/输出操作符的重载
3.文件的输入/输出
4.输入/输出中的格式控制
5.示例系统的输入/输出类设计
母静秩侮旁吠蔡瓶然呻懂佳查疚饲衣训虾碎阵整缉涣贰描捻仇烂振床焙钞第5章 C++输入输出流第5章 C++输入输出流
5.1 概述
C++的输入/输出流由iostream提供;
iostream为内置数据类型提供了默认的输入/输出操作;
用户可以通过扩展iostream来支持新数据类型的输入/输出;
iostream类库的层次关系如右图:
简化的iostream类层次结构
iostream类库中定义了三个标准的流对象
cin,代表标准输入的istream类对象,允许从用户终端读入数据;
cout,代表标准输出的ostream类对象,允许向用户终端写数据;
cerr,代表标准错误的ostream类对象,是导出程序错误消息的地方。
在C++中,输出主要由左移操作符()来完成;输入主要由右移操作符()来完成;
C++还支持对文件和内存的输入/输出,他们分别由类ifstream、ofstream和fstream以及istringstream、ostringstream和stringstream来支持。
损瑞始神捐页械规敲左预湖腥斤淑艳冶渴汤匠递驴壮其饶青槐惯欺狈蛛汾第5章 C++输入输出流第5章 C++输入输出流
5.2 输出操作符
输出操作符可以接受任何内置数据类型的实参,包括const char*,string,complex,表达式和函数调用等;
endl是一个ostream操作符,它把一个换行符插入到输出流中,再刷新ostream缓冲区;
由于输出操作符为左结合性,同时输出操作后的返回结果是一个ostream对象,所以多个输出操作符可以连接在一起。
5.2.1 常见的输入/输出
5.2.2 变量地址输出
默认情况下C++按十六进制输出地址值;
默认情况下char*输出的是他所指向的字符串的内容,而不是地址;
理解程序5.1.cpp。
5.2.3 输出操作符的优先级
理解并修改程序5.2.cpp。
沾捷央案彪细曲摆屹富动踞斟药吉估埋块姻宇玖氏魁驰热久器玛演酞狰征第5章 C++输入输出流第5章 C++输入输出流
5.3 输入操作符
考虑语句:while(cinival):
语句表示:从标准输入读入一个序列,直到cin为false为止;
当读到文件结束标记或遇到一个无效的输入值,cin返回false;
在读入一个无效值的情况下,cin被放置到一种错误的状态中,并且对于值的所有读入动作都将被停止。
预定义的输入操作符可以接受任何的内置数据类型,如:
“数值的读操作”比“数值的写操作”更容易导致iostream错误;
C++不推荐使用连接形式的的输入操作符;
对于字符串的输入操作,C++推荐使用string类型,而不是char*;
理解程序5.3.cpp。
int item_number; string item_name; double item_price;
coutPlease enter the item_number, item_name, and price: endl;
cinitem_number; cinitem_name; cinitem_price;
coutThe values entered are: item#
item_number item_name @$ item_priceendl;
运行,从键盘输入:10247 widget 19.99 回车,输出结果为:
The values entered are: item# 10247 widget @$19.99
扑袖品望唐皂皿贱煞卖万斡口斩鸽由垮征访材似杀宗畸借骡娄丰斯贱佳西第5章 C++输入输出流第5章 C++输入输出流
5.4 其它输入/输出方式
有些时候,不需要知道输入输出的具体数据类型,而只是按字节逐字读/写;
get()一次读入一个字节,put()一次输出一个字节,这两个函数通常配合在一起使用;
get()函数有三种形式,形式一参见程序5.4.cpp,形式二参见程序5.5.cpp,形式三参见程序5.6.cpp;
istream ignore(streamsize length = 1, int delim = traits::eof):从输入流中读入并丢弃length个字符,或者遇到delimiter之前包含delimiter在内的所有字符,或者直到文件结尾,如程序5.6.cpp ;
istream getline(char* sink, streamsize size, char delimiter=‘\n’):功能跟get()的第三种形式类
文档评论(0)