C课件IO流标准流.ppt

上传人:牧羊曲112 文档编号:6504393 上传时间:2023-11-07 格式:PPT 页数:36 大小:1.08MB
返回 下载 相关 举报
C课件IO流标准流.ppt_第1页
第1页 / 共36页
C课件IO流标准流.ppt_第2页
第2页 / 共36页
C课件IO流标准流.ppt_第3页
第3页 / 共36页
C课件IO流标准流.ppt_第4页
第4页 / 共36页
C课件IO流标准流.ppt_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《C课件IO流标准流.ppt》由会员分享,可在线阅读,更多相关《C课件IO流标准流.ppt(36页珍藏版)》请在三一办公上搜索。

1、输入输出流,1 流类和流对象,2 标准流和流对象,3 格式控制,5 串流,4 文件处理,本次课主要内容,流类与流对象 标准流与流对象标准IO流及流对象 常用IO流成员函数-get(),put(),getline()流状态及函数 clear(),good(),eof(),C+的数据流,C+的流是指由若干字节组成的字节序列中的数据按顺序从一个对象传送到另一对象。流表示了信息从源到目的端的流动。流是一种抽象,负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动。,C+的数据流,流中的内容可以是ASCII字符、二进制形式的数据、图形图像、数字音频视频或其他形式的信息。在内存中为每一个数据流开

2、辟一个内存缓冲区,用来存放流中的数据。,_内存_,istream cin,ostream cout,标准输入流,标准输出流,C+的输入输出流,C+的输入输出流,流类和流对象,I/O流类库提供对象之间的数据交互服务 输出流:表示数据从内存传送到某个载体或设备中;输入流:数据从某个载体或设备传送到内存缓冲区变量中。流类库预定义了一批流对象,连接常用的外部设备.程序员可以定义所需的I/O流对象,使用流库提供的工作方式实现数据传输 流类对象可以建立和删除,可以从流中获取数据和向流添加数据。,在C+中,输入输出流被定义为类,I/O库中的类称为流类,编译系统提供了用于输入输出的iostream类库。流类中

3、的常用类的继承层次关系,流类层次结构,输入输出流分类,(1)标准流 对系统指定的标准设备的I/O操作。(2)文件流 以外存中的文件为对象进行输入和输出。以文件为对象的输入输出,包括从磁盘文件输入数据,或将数据输出到磁盘文件。(3)字符串流 对内存中指定空间进行输入和输出。通常指定一个字符数组作为存储空间。,iostream.h含有cin、cout、cerr、clog对象,提供无格式和格式化的I/O iomanip.h 包含格式化I/O操纵算子,用于指定数据输入输出的格式 fstream.h 处理文件信息,包括建立文件,读/写文件的各种操作接口 每一种C+版本通常还包含其他一些与I/O相关的库,

4、提供特定系统的某些功能,输入输出头文件,标准流是C+预定义的对象,提供内存外部设备进行数据交互功能,标准输入输出流,标准输出流,cout ostream 类的对象(console output)通常连向显示器,可以重定向(关联至文件)在输出流类中重载的一组公用成员函数 ostream&operator(类型标识符);cout流在内存中对应开辟了一个缓冲区。,流插入运算符,标准错误输出流,cerr(无缓冲标准错误输出流)cerr与cout的差别在于:1)cerr不能重定向,只能输出到显示器;2)cerr不能被缓冲,直接输出到显示器 cerr“Error”“n”;clog(有缓冲标准错误输出流)c

5、log 与 cerr区别:clog能被缓冲,缓冲区满时输出。,标准输入流,cinistream类的对象,它从标准输入设备(键盘)获取数据程序中的变量通过流提取符“”从流中提取数据。在istream流类重载的一组公用成员函数 istream&operator(基本类型标识符&);流提取符从流中提取数据时通常跳过输入流中的空格、tab键、换行符等空白字符。,ostream类的公有成员函数,输出流操作,ostream,istream类的公有成员函数,输入流操作,istream类的公有成员函数,输入流操作,int get();istream演示代码:get.cpp,istream类的公有成员函数,输入

6、流操作,istream演示代码:getline.cpp,输入流操作,模拟练习:运行并分析输出结果stringInput.cpp/字符串的输入 char ch120,ch220,ch320,ch420;cinch1;coutch1endl;cin.getline(ch2,10);coutch2endl;cin.getline(ch3,20);coutch3endl;cin.getline(ch4,20,.);coutch4endl;,n,istream,istream类的公有成员函数,输入流操作,流错误状态,所有流都把流的状态存储在状态字中不同标志位中存储不同的错误状态位包含在类ios的enum

7、成员中,ios 处理流错误状态的公有成员函数,流错误状态,学生练习:运行程序,观测结果 streamstate.cpp,ios提供直接设置标志字的控制格式函数 iostream和iomanip库还提供控制符简化I/O格式化操作(自学内容),格式控制,ios类格式化标志,格式化标志是类定义的枚举集合,用来指定输入输出格式化和操作的不同选择。该枚举类型定义:enum skipws,left,right,internal,dec,oct,hex,showbase,showpoint,uppercase,showpos,scientific,fixed,unitbuf,stdio;引用格式化标志:io

8、s:格式化标志,设置标志字,状态标志 值 含义 输入/输出skipws 0X0001跳过输入中的空白Ileft 0X0002左对齐输出Oright 0X0004右对齐输出Ointernal 0X0008在符号位和基指示符后填入字符Odec 0X0010转换基制为十进制I/Ooct 0X0020转换基制为八进制I/Ohex 0X0040转换基制为十六进制I/Oshowbase 0X0080在输出中显示基指示符Oshowpoint 0X0100输出时显示小数点Ouppercase 0X0200十六进制输出时一律用大写字母Oshowpos 0X0400正整数前加“+”号Oscientific 0X0

9、800科学示数法显示浮点数Ofixed 0X1000定点形式显示浮点数Ounitbuf 0X2000输出操作后立即刷新流Ostdio 0X4000输出操作后刷新stdout 和 stdreeO,ios 的标志常量,设置标志字,ios 控制格式的函数,/例4 设置输出宽度#include void main()char*s=Hello;cout.fill(*);/置填充符 cout.width(10);/置输出宽度 cout.setf(ios:left);/左对齐 cout s endl;cout.width(15);/置输出宽度 cout.setf(ios:right,ios:left);/清

10、除左对齐标志位,置右对齐 cout s endl;,#include void main()int a,b,c;cout a;cout b;cout c;cout Output in decimal:n;cout.setf(ios:dec,ios:basefield);cout a=a b=b c=c endl;cout.setf(ios:hex,ios:basefield);cout Output in hexadecimal:n;cout a=a b=b c=c endl;cout.setf(ios:oct,ios:basefield);cout Output in octal:n;cou

11、t a=a b=b c=c endl;,/置八进制输出,/置十六进制输出,/置十进制输出,/置八进制输入,/置十进制输入,/置十六进制输入,例5 不同基数形式的输入输出,#include void main()double x=22.0/7;int i;cout output in fixed:n;cout.setf(ios:fixed|ios:showpos);/定点输出,显示+for(i=1;i=5;i+)cout.precision(i);cout x endl;cout output in scientific:n;/清除原有设置,科学示数法输出 cout.setf(ios:scien

12、tific,ios:fixed|ios:showpos);for(i=1;i=5;i+)cout.precision(i);cout x*1e5 endl;,例6 格式化输出浮点数,控制符是istream和ostream类定义了一批函数,作为重载插入运算符的右操作数 控制I/O格式,格式控制符,格式控制符,iostream几个常用的控制符,例7 不同基数形式的输入输出,cin dec a;,cin hex b;,cin oct c;,cout octa=a b=b c=cendl;,cout a=a b=b c=cendl;,cout hexa=a b=b c=cendl;,格式控制符,iom

13、anip的控制符,常用控制符与成员函数,/例8 整数的格式化输出#include#include using namespace std;void main()const int k=618;cout setw(10)setfill(#)setiosflags(ios:right)k endl;cout setw(10)setbase(8)setfill(*)resetiosflags(ios:right)setiosflags(ios:left)k endl;,#include void main()double x=22.0/7;int i;cout output in fixed:n;c

14、out.setf(ios:fixed|ios:showpos);/定点输出,显示+for(i=1;i=5;i+)cout.precision(i);cout x endl;cout output in scientific:n;/清除原有设置,科学示数法输出 cout.setf(ios:scientific,ios:fixed|ios:showpos);for(i=1;i=5;i+)cout.precision(i);cout x*1e5 endl;,例9 格式化输出浮点数,cout setiosflags(ios:fixed|ios:showpos);,cout resetiosflags(ios:fixed|ios:showpos)setiosflags(ios:scientific);,cout setprecision(i)xendl;,coutsetprecision(i)x*1e5endl;,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号