第27讲基本输入输出流.ppt

上传人:sccc 文档编号:5910416 上传时间:2023-09-02 格式:PPT 页数:22 大小:175.54KB
返回 下载 相关 举报
第27讲基本输入输出流.ppt_第1页
第1页 / 共22页
第27讲基本输入输出流.ppt_第2页
第2页 / 共22页
第27讲基本输入输出流.ppt_第3页
第3页 / 共22页
第27讲基本输入输出流.ppt_第4页
第4页 / 共22页
第27讲基本输入输出流.ppt_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《第27讲基本输入输出流.ppt》由会员分享,可在线阅读,更多相关《第27讲基本输入输出流.ppt(22页珍藏版)》请在三一办公上搜索。

1、The Lecturer:姚雅鹃E-mail:,C/C+语言程序设计,第二十七讲 基本输入/输出流,输入/输出流类体系 输入/输出格式控制,P315,C+将输入/输出的数据处理为字节序列,并形象地称之为“流”(stream)。,为了实现数据的输入/输出,C+定义了一系列类,称为流类。,数据在程序和设备之间“流动”,一、输入/输出流类体系,I/O流类继承关系,流基类,通用输入流基类,通用输出流基类,通用输入输出流基类,在这些已定义的类中,给出了若干方法(成员函数),用于控制输入输出。,cin和cout分别是istream类和ostream类的对象,由C+事先定义。,使用I/O流类,程序中需包含头

2、文件。,一、输入/输出流类体系,cin是缓冲流:操作系统将用户输入的内容先放入内存缓冲区,当用户输入结束按回车(Enter)时,cin从缓冲区提取数据。,二、输入/输出格式控制,1.缺省的输入/输出格式,1)缺省的输入格式,输入的数据类型必须与定义的变量类型一致。,二、输入/输出格式控制,1.缺省的输入/输出格式,1)缺省的输入格式,输入数据时,数据之间的分隔符缺省为:(空格键)(制表键)(回车键)这三个键通称为空白字符。,整型数:十进制、域宽为0、右对齐、空格填充。,二、输入/输出格式控制,1.缺省的输入/输出格式,2)缺省的输出格式,实型数:精度6位、浮点输出、域宽为0、右对齐、空格填充。

3、若整数部分超过7位或有效数字在小数点后第4位之后,自动转换为科学计数法格式。,若数据的实际宽度超过域宽,则按实际长度输出。,字符或字符串:域宽为0、右对齐、空格填充。,e.g.27_1 标准输出的缺省格式。,#include#includeusing namespace std;void main()double d1=12.3456789,d2=123456.789,d3=0.0000123456;coutd1,d2,d3endl;coutsetw(10)d1,setw(10)d2,setw(10)d3endl;char s10=abcd,c=k;couts,setw(4)cendl;,输出

4、结果:12.3457,123457,1.23456e-00512.3457,123457,1.23456e-005abcd,k(表示空格),二、输入/输出格式控制,2.控制输入/输出格式,1)使用格式状态标志和成员函数,P319,在 ios 类中,定义了一个公有的枚举成员,用于控制输入输出格式。,enum/部分内容如下,含义见319页表14-1 skipws=0 x0001,/跳过输入中的空白字符.dec=0 x0010,/将数据转换成十进制 oct=0 x0020,/将数据转换成八进制 hex=0 x0040,/将数据转换成十六进制 showbase=0 x0080,/输出时带表示数制的前导

5、符;/每个枚举常量代表一种格式状态标志,二、输入/输出格式控制,2.控制输入/输出格式,1)使用格式状态标志和成员函数,在 ios 类中,还定义了一个保护的长整型成员,称为输入输出状态标志字:protected:long x_flag;,C+使用x_flag的低16位,每一个二进制位代表一种格式状态,值为1时表示开启,值为0时表示关闭。多个枚举常量组合成x_flag,控制输入输出格式。,.XXXX XXXX XXXX XXXX,x_flag,如:ios:oct|ios:showbase 组合出的x-flag为:.0000 0000 1010 0000,即0 x00A0 表示按八进制输出数据,并

6、输出前导符0,二、输入/输出格式控制,2.控制输入/输出格式,1)使用格式状态标志和成员函数,由于x_flag是ios的保护成员,对象 cin、cout不能直接访问,所以ios类提供了一些公有成员函数来设置 x_flag。,setf(格式状态标志)功能:开启格式状态unsetf(格式状态标志)功能:取消格式状态,P320,#includeusing namespace std;void main()char c1,c2,c3;cin.unsetf(ios:skipws);/设置不跳过空白字符 cinc1c2c3;coutxy;coutx,yendl;/缺省以十进制输出,e.g.27_2 分析以

7、下程序。,假设先输入:a b c再输入:10 20输出:?,二、输入/输出格式控制,2.控制输入/输出格式,2)使用流操纵符,在头文件中定义了一些流操纵符,用于控制I/O格式。,P322,常用的有dec、oct、hex、endl、setbase()、setw()、setfill()、setprecision()、setiosflags(),#include#includeusing namespace std;void main()int x,y,a,b;cinhexxy;cinoctab;coutsetbase(10)setw(8)setfill(*)x,setfill($)setw(4)y

8、endl;coutsetiosflags(ios:left)a,setw(8)bendl;,e.g.27_3 控制输入输出格式。,假设输入:10 2010 20输出:?,#include#includeusing namespace std;void main()double x=12.34567;coutxendl;coutsetprecision(4)xendl;/设置以定点数格式输出 cout.setf(ios:fixed,ios:floatfield);coutxendl;/设置以科学表示法格式输出 cout.setf(ios:scientific,ios:floatfield);co

9、utsetprecision(2)xendl;,e.g.27_4 控制实型数的输出精度。,运行结果:12.3457/默认6位精度12.35/设置为4位精度12.3457/小数点后4位数字1.23e+001/小数点后2位数字,二、输入/输出格式控制,3.成员函数get()和getline(),get()与getline()是类istream定义的成员函数,可读取空白字符,因此可解决cin读取字符串时遇空格结束的问题。,P317,二、输入/输出格式控制,3.成员函数get()和getline(),get()的重载形式:,int get();istream,getline()的原型:,istream

10、,二、输入/输出格式控制,3.成员函数get()和getline(),带3个参数的get()和getline()的区别,get()遇n会结束,n留在输入流中,即接下来的读取从该n开始 getline()遇n会结束,n不留在输入流中,也不被读取,而是从输入流中删除,#includeusing namespace std;void main()char c1,c2,c3;char str180,str2100;cout“输入三个字符:;c1=cin.get();cin.get(c2).get(c3);cin.get();cout“输入第一行字符串:;cin.get(str1,80);cin.get();cout“输入第二行字符串:;cin.getline(str2,80);,e.g.27_5 读取字符和字符串。,假设输入:abccomputeroperator,cout.put(c1).put(c2).put(c3).put(n);puts(str1);puts(str2);,运行结果:abccomputeroperator,成员函数put()的用法见课本318页,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号