好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

面向对象程序的输入输出流.ppt

43页
  • 卖家[上传人]:第***
  • 文档编号:53488336
  • 上传时间:2018-09-01
  • 文档格式:PPT
  • 文档大小:834KB
  • / 43 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 面向对象程序的输入输出流,学习目标,理解如何使用输入/输出流 掌握格式化输入/输出 掌握如何输入/输出用户自定义类型数据 掌握文件的顺序/随机处理方式,数据的输入/输出是最重要的操作,C++的输入/输出由iostream库(iostream library)提供支持它利用多继承和虚拟继承实现了面向对象类层次结构C++的输入/输出机制为内置数据类型的输入/输出提供了支持,同时也支持文件的输入/输出在此基础上,设计者可以通过扩展iostream库,为新类型的数据读写进行扩展1.C++流类库简介,C语言中的scanf和printf很灵巧高效,但不是类型安全的,而且没有扩展性scanf/printf系列函数要求把读写的变量和控制读写的格式信息分开而C++正是克服了这些缺点,使用cin/cout控制输入/输出 (1) cin,表示标准输入的istream类对象cin从终端读入数据 (2) cout,表示标准输出的ostream类对象cout向终端写数据 (3) cerr,表示标准错误输出(非缓冲方式),导出程序错误消息 (4) clog,表示标准错误输出(缓冲方式),导出程序错误消息 为了在程序中使用cin/cout,必须在程序中包含iostream库的相关头文件 #include,输入/输出格式定义如下 :[例9-1] 简单I/O举例。

      cin>>变量名; cout<<变量名或常量;,#include int main(){int i;float f; char s[]=“Hello!“; cout>i; cerr << “test for cerr“ << endl;,clog >f; cout<<“i=“<buf){ purfile<

      ios类作为流类库的基类,主要派生了istream、ostream类,由这两个类又派生了很多使用的流类,除ifstream、ofstream、iostream类外,还有strstream(输入/输出串流类)、istrstream(输入串流类)、ostrstream(输出串流类)等2 . 输入/输出流,2.1 基本输出流 C++的ostream提供了丰富的格式化和无格式化的输出功能:用流插入符输出标准数据类型;put库成员函数输出字符;以八进制、十进制、十六进制输出数据;以各种精确方式输出浮点型数据;以科学计数法定点输出数据;以指定宽度输出数据;在区域内用指定字符填充等 流输出可以用流插入运算符——即重载的<<(左移位运算符)来完成运算符<<左边的操作数是istream类的一个对象(如cout),右边可以是C++的合法表达式[例9-3] 用插入运算符实现流输出 using namespace std; int main() {cout<<“hello! C++\n“; //其中\n表示换行cout<<“hello! C++“<

      任何表达式包括函数调用,都可以是输出操作符的实参,只要它的计算结果是一个能被输出操作符实例接受的数据类型即可[例9-4] 函数调用作输出操作符的实参 using namespace std; int main() {cout<<“hello! C++!“;cout<>(右移位运算符)来完成类似于输出运算符>i; 从键盘输入的数据会自动转换为i的类型,存储到变量i中注意: (1) 输入运算符>>也支持级联输入在默认情况下,运算符>>跳过空格,读入后面与变量类型相应的值因此给一组变量输入值时,用空格或换行将输入的数值间隔开,例如: int i; float f; cin>>i>>f; 当从键盘输入 10 12.34 时,数值10和12.34会分别存储到变量i和f内。

      (2) 当输入字符串(char* 类型)时,输入运算符>>会跳过空格,读入后面的非空格符,直到遇到另外一个空格结束,并在字符串末尾自动放置字符‘\0’作为结束标志,例如: char s[20]; cin>>s; 当输入 Hello! world! 时,存储在字符串s中的值为“Hello!”,而没有后面的“wordl!”3) 数据输入时,不仅检查数据间的空格,还做类型检查、自动匹配,例如: int i; float f; cin>>i>>f; 如果输入 12.34 34.56 则存储在i、f内的数值为12和0.34,而不是12.34和34.562.3 格式化输入/输出 1.ios类成员函数控制格式 见表9-1状态标志字 (1) 设置状态标志设置状态标志可使用long ios::setf(long flags)函数,使用格式如下:stream_obj.setf(ios::enum_type); 说明:其中,stream_obj为被影响的流对象,常用的是cin和coutenum_type为表9-1中列举的值例如:cout.setf(ios::dec); 表示以十进制输出 (2) 清除状态标志清除状态标志可使用long ios::unsetf(long flags)函数。

      stream_obj.unsetf(ios::enum_type); 使用方法与ios::setf( )函数相同3) 取状态标志取状态标志用flags( )函数,在ios类中重载了两个版本: long ios::flags(); long ios::flags(long flag); 前者用于返回当前状态标志字;后者将状态标志字存储在flag内2 .操纵符控制格式 见书表9-2操纵符,[例9-9] 格式控制 #include #include using namespace std; int main() {int i=123;float f=2010.0301;const char* const str=“hello! every one!“;cout<<“default width is:“<

      #include #include using namespace std; ostream },2.4其他的输入/输出函数 1.get( )、put( )函数get(char,2.getline( )函数使用get( )函数输入字符串时,经常忘记去掉delimiter,所以引入函数getline( ),其原型与get( )的重载版本相同: getline(char *str, streamsize size, char delimiter='\n'); 使用getline( )函数比get( )方便,它除去了delimiter,而不是将其留做下一个字符 3.write( )、read( )函数 ostream类成员函数write( )提供一种输出字符数组的方法它不是输出“直到终止字符为止”,而是输出某个长度的字符序列,包括空字符函数原型如下: write(char *str, streamsize length);,3 .用户自定义类型的输入/输出,3.1 重载输出运算符“<<” 输出运算符“<<”,又称插入运算符,定义其重载函数的格式如下:函数中第一个参数out是对ostream对象的引用,即out必须是输出流对象;第二个参数是用户自定义要输出的类对象的引用。

      data1,data2,……,datan是类内要输出的数据成员 输出运算符“<<”不能作为类的成员函数,只能作为友元函数(要访问类的私有成员)来实现ostream },3.2 重载输入运算符“>>” 输入运算符“>>”,又称提取运算符,定义其重载函数的格式如下 :函数中第一个参数in是对istream对象的引用,即in必须是输入流对象;第二个参数是用户自定义要输入的类对象的引用data1, data2, …,datan是类内要输入的数据成员istream },[例9-15] 输入/出运算符重载 #include #include using namespace std; class Word{char* word;size_t iNum; public:Word(const char* const str=NULL);virtual ~Word(){if(word)delete []word;}friend ostream,Word::Word(const char* const str) {if(str!=NULL){iNum=strlen(str);word=new char[iNum+1];strcpy(word,str);} } ostream },istream },。

      点击阅读更多内容
      相关文档
      精彩瞬间课件 2024——2025学年人教版(2024)初中美术七年级下册.pptx 【课件】垂线—.垂线段与点到直线的距离 课件湘教版数学七年级下册.pptx 【公开课】《数轴、相反数和绝对值》+第2课时++相反数课件沪科版数学七年级上册.pptx 2024秋新华师大版数学7年级上册教学课件 4.1 相交线 4.1.1 对顶角.pptx 2024秋新华师大版数学7年级上册课件 2.3 整式 2.3.3 升幂排列和降幂排列.pptx 2024秋新北师大版数学7年级上册教学课件 2 有理数的加减运算 第5课时 有理数的加减混合运算的应用.pptx 2024秋新北师大版数学7年级上册课件 3 1元1次方程的应用 第2课时 盈不足问题.pptx 2024秋新北师大版数学7年级上册教学课件 3.1 第2课时 代数式.pptx 2024秋新华师大版数学7年级上册教学课件 4.2 平行线 4.2.1 平行线.pptx 2024秋新北师大版数学7年级上册课件 3 多边形和圆的初步认识.pptx 2024秋新北师大版数学7年级上册课件 2 1元1次方程的解法 第4课时 1元1次方程的解法——去分母.pptx 2024秋新北师大版数学7年级上册课件 2 有理数的加减运算 第1课时 有理数的加法法则.pptx 2024秋新外研版英语1年级上册教学课件 Module 5 Unit 1.pptx 2024秋新北师大版物理8年级上册课件 第5章 透镜及其应用 整理与复习.pptx 2024秋新华师大版数学7年级上册课件 1.10 有理数的除法.pptx 2024秋新北师大版数学7年级上册课件 2 1元1次方程的解法 第3课时 1元1次方程的解法——去括号.pptx 2024秋新北师大版生物7年级上册课件 3.1 细胞的基本结构和功能(第1课时 光学显微镜的使用).pptx 2024秋新华师大版数学7年级上册课件 1.4 绝对值.pptx 2024秋新华师大版数学7年级上册课件 3.1 生活中的立体图形.pptx 2024秋新北师大版数学7年级上册课件 2.1 第2课时 绝对值.pptx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.