- 1、本文档共66页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]C程序设计__第11章_C的IO流类库
2008-2009-2 C++程序设计 第11章 C++的IO流库 本章内容提要 流概述、屏幕输出、键盘输入 格式化输入和输出 磁盘文件的输入和输出 字符串流、流错误的处理 流的概念 用于输入输出地一组类。流有两种类型:文本流、二进制流。 输出流与输入流。 说明: “流”看成一个逻辑设备。 “流”是临时的。 提取操作和插入操作。 文件和缓存的概念 文件 是对具体设备的抽象。 如,磁盘文件和显示器都是文件。 所有流的行为对程序员来讲都是相同的。 说明: 流统一了对相关文件的操作。 缓冲 缓冲区是指系统在内存中开辟的一块区域临时存放信息. 缓冲流:缓冲区满或当前输入流中有新的行符时,系统才对流进行刷新。 非缓冲流:所有输入流中的数据将被外部设备立即处理。 流与文件、缓冲的关系 示意图 C++流类的基本结构 一、标准输出 C++中有4个预定义的流对象 一、标准输出 标准输出主要有三种形式: 预定义的插入符 利用cout的put()成员函数 利用cout的write()成员函数 1.预定义的插入符 “”插入运算符,向输出流中插入一个字符序列。重载在ostream类中定义,cout是数据的目的地。 功能:数据输出到计算机屏幕 重载格式:ostream operator (ostream, 类型修饰符); 例如: coutabcd; 例11.1: 问题:分析程序结果。 例11.2: 问题:分析程序结果。 2.put()成员函数 屏幕输出的第二种方法可以由成员函数put()实现。 使用成员函数put()写一个字符。 成员函数put()是将字符送进输出流格式: cout.put(char c); 或 cout.put(const char c); 例11.3: 问题:分析程序结果。 3.write()成员函数 成员函数write()也可实现屏幕的输出。 使用成员函数write()输出一个字符串。 格式: cout.write(const char *str,int n) 说明: str是一个字符指针或字符数组,用来存放一个字符串的,n是一个int型数,表示输出显示字符串中字符的个数。 例11.4: 问题:分析程序结果。 二、标准输入 标准输入主要有三种形式: 预定义的符提取符 利用cout的get()成员函数 利用cout的read()成员函数 1.预定义的提取符 预定义的提取符() 最一般的键盘输入是将提取符作用在流类的对象cin上。 cin重载格式: istream operator(istream is,classtype var); 使用格式: cin表达式表达式… 说明: 从键盘上输入的两个数之间常用空白符、tab、或换行符作为分隔符。 例11.5: 问题:提取符的应用。 提取符使用注意事项: 提取符可从输入流中读取一个字符序列。并认为这个字符串是以空白符为结束的字符序列。每读入一个字符串时,系统自动加上\0字符。 使用ctrl+z作为输入流的结束符。 具体操作中,先输入换行符后,再输入ctrl+z键。此时cinbuf的值为0,则退出循环。 2.get()成员函数 使用get()读一个字符 格式:cin.get( ) 如例9-9 格式:cin.get(char ch) 格式:cin.getline(char *buf,int limit,Deline=‘\n’); 如例9-10 注意:该函数从输入流中获取字符时,不忽略空白符。 例11.6: 问题:分析程序输出结果。 get()使用注意事项: get()从输入流返回一个字符的ASCII码值,可以赋给一个int型量。 EOF是一个符号常量,它的值是-1,被包含在iostream.h文件中。 put(ch)只能对char型量操作。与get()不同。 例11.7: 问题:编程统计从键盘上输入每一行字符的个数,从中选取出最短的行的字符个数,统计共输入多少行。 3.read()成员函数 成员函数read()可以从输入流中读取指定数目的字符并将它们存入在指定的数组中。 格式: cin.read(char *buf,int size) 说明: buf:存放读取的字符的指针或字符数组。 size:指定从输入流中读取字符的个数。 也可以使用gcount()统计上一次使用read()函数读取的字符个数。 使用peek()函数,返回字符但不提取。 例11.8: 问题:编程统计从键盘上输入每一行字符的个数,从中选取出最短的行的字符个数,统计共输入多少行。 例11.9: 问题:分析程序输出结果。 四、格式控制I/O操作 格式化输入与输出是指按规定的格式对流进行输入与输出操作。 在没有特意进行格式控制的情况下,输入输出采用默认格式。 两种方式控制数据的格式: 使用成员函数
文档评论(0)