欢迎来到装配图网! | 帮助中心 装配图网zhuangpeitu.com!
装配图网
ImageVerifierCode 换一换
首页 装配图网 > 资源分类 > PPT文档下载
 

C程序的设计简明教程第9章C输入输出流

  • 资源ID:190388366       资源大小:314.50KB        全文页数:37页
  • 资源格式: PPT        下载积分:10积分
快捷下载 游客一键下载
会员登录下载
微信登录下载
三方登录下载: 微信开放平台登录 支付宝登录   QQ登录   微博登录  
二维码
微信扫一扫登录
下载资源需要10积分
邮箱/手机:
温馨提示:
用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

C程序的设计简明教程第9章C输入输出流

第9章 C+的输入/输出流 9.1 概述 9.2 输出流 9.3 输入流 9.4 格式控制 9.5 文件的输入输出 9.1 概述C+用流stream的概念描述数据的输入输出,流是计算机中的数据从源头移动到目的地的这种过程的抽象。流具有很强的方向性,与输入设备相联系的流称为输入流,与输出设备相联系的流称为输出流,与输入输出设备相联系的流称为输入输出流。流操作对流的基本操作有两种,从流中获得数据称为提取操作,向流中添加数据称为插入操作。C+语言用流对象来管理流,流对象一般都与某种设备相联系,程序员通过操纵流对象,达到控制输入输出的目的。输入输出流类输入输出流类负责把计算机的各种输入输出设备,变成流的源头和目的地,能被源源不断地提取和插入数据。streambuf类和ios类分别是两个类族的顶层基类,其它流类都是由这两个类中的一个派生而来。标准流对象为便于程序员在程序中实现常用的输入输出功能,C+定义了4个标准的流对象,分别是cin、cout、cerr和clog。cin对象负责标准输入,即从键盘输入数据;cout对象负责标准输出,即向显示器输出数据。cerr对象和clog对象负责标准错误输出,其中cerr对象无缓冲区而clog对象则有。用于流提取的运算符是,用于流插入的运算符是,它们均从移位运算符重载而来。9.2 输出流ostream类提供了数据流输出的功能,其流对象是流的目的地。在程序里可以将数据不断地插入流中,送至这些ostream流对象。输出时使用的ostream流对象通常是cout,有3种基本操作方式。第1种是用流插入运算符,输出基本类型的数据;第2种是用成员函数put,输出一个字符;第3种是用成员函数write,输出一个字符串。流插入运算符 cout表达式1表达式n;int x=1,y=2;float z=3.4;char c=a;coutx”,”y”,”z”,”cendl;coutx+yy)endl;成员函数put ostream&put(char c);char c=a;cout.put(c);/输出c的值即字母acout.put(c).put(b).put(Q);成员函数write ostream&write(const char*s,int n);char*p=”C+”,a20=”language”;cout.write(p,3);cout.write(a,strlen(a);/输出数组a中的字符串 coutendl;cout.write(p.strlen(p).write(a,strlen(a);cout变量1变量2变量n;使用流提取运算符输入多个数据时,应该用空格符或者回车符进行分隔。默认情况下,系统会自动跳过输入流中的空格符、tab符以及回车符等空白字符。成员函数get int get(void);istream&get(char&c);istream&get(char*s,int n,char ch=n);char c1,c2,a80;c1=cin.get();cin.get(c2);cin.get(a,21,#);成员函数getline istream&getline(char*s,int n,char ch=n);char a80;cin.getline(a,21,#);读取控制成员函数函数原型说明int gcount(void)const统计最近一次实际读取的字符个数istream&ignore(int n=1,int d=EOF)跳过并丢弃n个字符,直到遇见d中的字符为止istream&putback(char ch)将指定字符插入到输入流的当前位置int peek(void)读取输入流中当前字符成员函数read istream&read(char*s,int n);read函数的功能是从输入流中顺序读取n个字符,并存入到s所指向的字符数组中。它与get函数、getline函数的区别是,不在读取的这些字符的尾部添加一个空字符(0)。9.4 格式控制在实践应用中经常需要对输入输出的格式进行控制,例如设置域宽和精度、设置或者清除格式状态标志、设置填充字符、设置数据对齐方式,以及在输出流中插入空字符或者换行符等等。C+提供了两种用于格式控制的方法,一种是调用ios类的格式控制成员函数,另一种是使用流操纵符。格式控制成员函数 函数原型 说明int width(void)读取当前设置的域宽 int width(int n)设置当前域宽为n,并返回原先设置的域宽int precision(void)读取当前设置的浮点数精度int precision(int n)设置当前浮点数的精度为n,并返回原先设置的浮点数精度char fill(void)读取当前设置的填充字符char fill(char ch)设置当前填充字符为ch,并返回原先设置的填充字符long flags(void)读取当前设置的格式状态标志long flags(long f)设置当前格式状态标志为f,并返回原先设置的格式状态标志long setf(long f)设置当前格式状态标志为f,并返回原先设置的格式状态标志long unsetf(long f)清除格式状态标志f,并返回原先设置的格式状态标志案例#include int main()int i;for(i=1;i=4;i+)cout.width(4-i);cout.fill();if(cout.width()!=0)cout;cout.width(2*i-1);cout.fill(*);cout*endl;return(0);格式状态标志 ios:adjustfield标志组 ios:left 输出时左对齐 ios:right 输出时右对齐 ios:internal 符号和基数标志左对齐,数值右对齐,中间用字符填充ios:basefield标志组 ios:dec 以十进制为基数输出ios:oct 以八进制为基数输出ios:hex 以十六进制为基数输出ios:floatfield标志组 ios:fixed 以定点形式输出浮点数ios:scientific 以指数形式输出浮点数其它标志 ios:skipws 输入时跳过空白符ios:showbase 输出时带有基数标志,八进制数有前导0,十六进制数有前导0 xios:showpoint 输出浮点数时带有小数点ios:showpos 输出十进制正数时有前导+ios:uppercase 将十六进制数和以指数形式表示的数中的字母转换为大写形式ios:boolalpha 以文本的形式输出布尔数据true、false)成员函数flags long oldf;oldf=cout.flags(ios:left|ios:hex);/*设置输出左对齐和以十六进制为基数的标志*/cout.flags(oldf);/恢复原先的状态设置setf函数setf函数和unsetf函数通常配合使用,用来完成格式状态标志的设置和清除。cout.setf(ios:left);/设置输出左对齐标志 cout.unsetf(ios:left);/清除左对齐标志操纵符 操纵符manipulator又称为流操作算子,是一种特殊的函数。由于操纵符返回流对象的引用,因此可以连续地使用,并直接插入到流中,较为方便地控制流中数据的输入输出格式。案例#include#include int main()int i;for(i=1;i=4;i+)coutsetw(4-i)setfill();if(cout.width()!=0)cout;coutsetw(2*i-1)setfill(*)*endl;return(0);自定义操纵符 ostream&pxy(ostream&out)out.flags(ios:left);outsetw(3);return(out);coutx=pxyp.xy=pxyp.y;9.5 文件的输入输出C+提供文件流类来处理文件的输入输出,分别是ifstream类、ofstream类和fstream类。文件流对象控制输入输出的方式,与cin对象和cout对象非常相似,而且已经学过的输入输出成员函数、格式控制成员函数以及操纵符,基本上都可以适用于文件流对象。文件打开与关闭文件打开与关闭 对文件能够进行哪些操作,这主要取决于两个因素。第一个因素是文件所关联的文件流对象,ofstream流对象能够进行文件输出操作即写操作),ifstream流对象能够进行文件输入操作即读操作),fstream流对象既能够进行文件输出操作,也能够进行文件输入操作。打开方式 打开方式 说明ios:in以读方式打开文件ios:out以写方式打开文件ios:app在文件尾部追加写入ios:ate打开一个已存在的文件,并将位置指针置于该文件的结尾ios:nocreate打开一个已存在的文件,若该文件不存在,则打开失败ios:noreplace打开文件时若该文件已存在,而且未设置app或者ate,则打开失败ios:binary以二进制方式打开文件ios:trunc 打开文件时若已存在,清空原有内容;若文件不存在,则创建新文件文件打开1C+文件打开的方法有两种,第一种是在创建文件流对象的同时,立即打开相关联的文件。具体实现过程就是向文件流对象的构造函数,传送文件名和打开方式等参数。istream file1(“a.txt”,ios:in);ostream file2(“b.txt”,ios:out|ios:binary);文件打开2第二种方法是先创建文件流对象,再调用成员函数open,并传给它文件名和打开方式等参数,打开相关联的文件。istream file1;file1.open(“a.txt”,ios:in);ostream file2;file2.open(“b.txt”,ios:out|ios:binary);文件打开测试 istream file1;file1.open(“a.txt”,ios:in);if(!file1)cerr”文件打开失败!”endl;文件的顺序读写文件的顺序读写 所谓顺序读写,就是文件打开之后从头开始,顺序地读写文件中的数据。以文件流对象的形式来处理文件的输入输出是非常便利的,文件流对象与文件建立关联之后,就可以象cin和cout那样控制数据流,前面介绍的几种输入输出方法都可以用来实现文件的读写操作。文件的定位和状态检测文件的定位和状态检测 成员函数tellg和tellp用于得到文件位置指针的当前位置,其函数原型为:long tellg(void);long tellp(void);重新定位成员函数seekg用于重新定位输入流文件位置指针的当前位置,其函数原型为:istream&seekg(long pos);istream&seekg(long offset,ios:seek_dir rpos);文件流输入输出状态标志 输入输出状态标志 说明 ios:goodbit文件流状态良好,其它3个标志都不为trueios:eofbit文件位置指针已到达文件的尾部ios:failbit文件操作失败ios:badbit由于内存不足等原因,出现不可恢复的错误

注意事项

本文(C程序的设计简明教程第9章C输入输出流)为本站会员(痛***)主动上传,装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知装配图网(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!