第2章C面向对象程序设计(721KB).pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.6.2 流的格式控制和错误处理 2.使用格式算子 C++提供了一些格式算子来简化上述操作。格式算子是一个对象,可以直接用插入符或提取符来操作。C++提供的预定义格式算子如表2.2所示。 格 式 算 子 功 能 输入(I)/输出(O) dec 设置为十进制 I/O hex 设置为十六进制 I/O oct 设置为八进制 I/O ws 提取空白字符 I endl 插入一个换行符 O ends 插入一个空字符 O flush 刷新输出流 O setbase(int) 设置转换基数,参数值可以是0、8、16和10,0表示默认基数 I/O resetiosflags(long) 取消指定的标志 I/O setiosflags(long) 设置指定的标志 I/O setfill(int) 设置填充字符 O setprecision(int) 设置浮点数的精度 O setw(int) 设置输出宽度 O 【例Ex_Formator】 使用格式算子 2.6.2 流的格式控制和错误处理 3.流的错误处理 在ios类中,定义了一个公有枚举成员io_state来记录各种错误的性质: enum io_state { goodbit = 0x00, // 正常 eofbit = 0x01, // 已达到文件尾 failbit = 0x02, // 操作失败 badbit = 0x04 // 非法操作 }; 在ios类中又定义了检测上述流状态的下列成员函数: int ios::rdstate(); // 返回当前的流状态,它等于io_state中的枚举值 int ios::bad(); // 如果badbit位被置1,返回非0 void ios::clear(int); // 清除错误状态 int ios::eof(); // 返回非0表示提取操作已到文件尾 int ios::fail(); // 如果failbit位被置1,返回非0 int ios::good(); // 操作正常时,返回非0 2.6.2 流的格式控制和错误处理 【例Ex_ManipError】 检测流的错误 #include iostream.h int main() { int i, s; char buf[80]; cout输入一个整数:; cini; s = cin.rdstate(); cout流状态为:hexsendl; while (s) { cin.clear(); cin.getline(buf, 80); cout非法输入,重新输入一个整数:; cini; s = cin.rdstate(); } return 0; } 2.6.2 流的格式控制和错误处理 程序运行结果如下: 输入一个整数:a? 流状态为:2 非法输入,重新输入一个整数:abcd? 非法输入,重新输入一个整数:12? 2.6.3 使用输入/输出成员函数 1.输入操作的成员函数 数据的输入/输出可以分为三大类:字符类、字符串和数据。 (1)使用get和getline函数 用于输入字符或字符串的成员函数get原型如下: int get(); istream get( char rch ); istream get( char* pch, int nCount, char delim = \n ); 第1种形式是从输入流中提取一个字符,并转换成整型数值。第2种形式是从输入流中提取字符到rch中。第3种形式是从输入流中提取一个字符串并由pch返回,nCount用来指定提取字符的最多个数,delim用来指定结束字符,默认时是\n。 函数getline原型如下: istream getline( char* pch, int nCount, char delim = \n ); 2.6.3 使用输入/输出成员函数 【例Ex_GetAndGetLine】 get和getline的使用 程序运行结果如下: 请输入一个字符:A? 65 请输入一行字符串:This is a test!? This is a test! 请输入一行字符串:Computer? Computer 请输入一行字符串:你今天过得好吗?? 你今天过得好吗? 2.6.3 使用输入/输出成员函数 (2)使用read函数 read函数不仅可以读取字符或字符串(称为文本流),而且可以读取字节流。其原型如下: istream read( char* pch, int nCount ); istream read( unsigned char* puch, int nCount );

文档评论(0)

精品课件 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档