C++语言程序设计 教学课件 ppt 作者 邓振杰 第11章

上传人:E**** 文档编号:89343265 上传时间:2019-05-23 格式:PPT 页数:80 大小:210KB
返回 下载 相关 举报
C++语言程序设计 教学课件 ppt 作者  邓振杰 第11章_第1页
第1页 / 共80页
C++语言程序设计 教学课件 ppt 作者  邓振杰 第11章_第2页
第2页 / 共80页
C++语言程序设计 教学课件 ppt 作者  邓振杰 第11章_第3页
第3页 / 共80页
C++语言程序设计 教学课件 ppt 作者  邓振杰 第11章_第4页
第4页 / 共80页
C++语言程序设计 教学课件 ppt 作者  邓振杰 第11章_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《C++语言程序设计 教学课件 ppt 作者 邓振杰 第11章》由会员分享,可在线阅读,更多相关《C++语言程序设计 教学课件 ppt 作者 邓振杰 第11章(80页珍藏版)》请在金锄头文库上搜索。

1、第11章 C+输入/输出流,11.1 输入/输出流的概念 11.2 输 出 流 11.3 输 入 流,11.1 输入/输出流的概念,在C+程序中,数据可以从程序流向屏幕或磁盘文件,也可以从键盘或磁盘文件流入到程序中。 在C+语言中,数据的输入和输出操作包括以下几种情况:,(1)对标准输入设备键盘或标准输出设备显示器进行输入/输出操作,简称为标准I/O流。 (2)、对外存(如磁盘)上的文件进行输入/输出操作,简称为文件I/O。 (3)对内存中指定的字符串存储空间进行输入/输出操作,简称为串I/O。,简单地讲,I/O流是一系列写到屏幕显示器上或从键盘上读出的各种字符。当在C+中执行标准的输入/输出

2、操作时,一般使用I/O流cin作为输入,使用cout作为输出。事实上,C+将I/O流定义为类。输入和输出操作分别由输入流istream和输出流ostream两个类提供。,而iostream是这两个类的派生类,允许进行双向的I/O操作。ostream的输出操作可认为是一个插入过程,由左移符(或称作插入操作符)“”的操作符实现。 任何一个使用iostream库的程序都必须包含头文件iostream.h。,在C+语言中,有四个已预先定义好的流对象,以便用户直接使用,分别为: (1)cin:一个istream类的对象,用于处理标准输入。 (2)cout:一个ostream类的对象,用于处理标准输出。,

3、(3)cerr:一个ostream类的对象,用于处理标准出错信息,并提供不带缓冲区的输出; (4)clog:一个ostream类的对象,也用于处理标准出错信息,但提供带有缓冲区的输出。,11.2 输 出 流,11.2.1 基本输出操作 11.2.1.1 理解cout cout是console output的缩写,意为“控制台输出”,表示把程序结果输出到屏幕(标准输出设备)。,【例11.1】cout应用举例1。 #include void main(void) cout”C+ is very easy!”endl; ,运行程序,会在显示器上输出显示如下信息: C+ is very easy! 插

4、入操作符可以串联起来使用,将多个数据项一起输出。,【例11.2】cout应用举例2。 #include void main(void) char name=“Zhang San“; int age=25; cout“Output the name and age:“name“ “ageendl; ,运行程序,输出结果为: Output the name and age:Zhang San 25,【例11.4】以十六进制形式输出显示结果。 #include void main(void) float x=888.; float* p= ,运行程序,输出结果为: x: 888 &x: 0x0012

5、FF7C *p: 888 p: 0x0012FF7C &p: 0x0012FF78,11.2.1.2 常见错误 11.2.1.3 输出成员函数 1. put()函数 成员函数put()把单个字符写入输出流中。,【例11.5】用输出成员函数在屏幕上输出一串字符“Hello!”。 #include void main(void) cout.put(H); cout.put(e); cout.put(l); cout.put(l); cout.put(o); cout.put(!); cout.put(n); ,实际上,下面两条语句是等价的: couta; cout.put(a); 两者都在屏幕上输

6、出一个字符a。,2. write()函数 成员函数write()输出一串字符。该成员函数一般形式是: write(char* pch, int nCount) 其中,pch是指向字符数组的指针,nCount指明从第一个参数中复制输出字符的个数。,【例11.6】write()函数应用举例。 #include void main(void) char str=“You will be the C+ master !“; cout.write(str,sizeof(str)-1); coutendl; cout.write( ,运行程序,输出结果为: You will be the C+ maste

7、r ! will,11.2.1.4 重载插入操作符 #include ,class Cdate public: CDate(char *Year,char *Month, char *Date, char* Time); void show_date(void); private: char Year32; char Month32; char Date32; char Time32; ;,CDate:CDate(char *Year, char *Month, char *Date, char *Time) strcpy(CDate:Year, Year); strcpy(CDate:Mon

8、th, Month); strcpy(CDate:Date, Date); strcpy(CDate:Time, Time); ,void CDate:show_date(void) cout“Year:t“Yearendl; cout“Month:t“Monthendl; cout“Date:t“Dateendl; cout“Time:t“Timeendl; ,void main(void) CDate current_date(“2004年“,“2月“,“14日“,“19时25分“); current_date.show_date(); ,11.2.2 输出格式控制 11.2.2.1 操作

9、器 1. 控制浮点数显示精度setprecision 可用setprecision操作器来控制输出流显示的数据位数。默认状态下浮点数的输出精度是6位有效数字。,【例11.9】setprecision应用举例。 #include #include void main(void) cout“float:“endl; for(int i=1;i8;i+)coutsetprecision(i)200./7.endl;,coutsetiosflags(ios:fixed)“fixed:“endl; for(i=1;i8;i+)coutsetprecision(i)200./7.endl; ,输出结果为:

10、 float: 3e+001 29 28.6 28.57 28.571 28.5714 28.57143,fixed: 28.6 28.57 28.571 28.5714 28.57143 28.571429 28.5714286,2. 控制输出进制dec、oct、hex、setbase dec、oct、hex分别用于控制十进制、八进制和十六进制输出格式。默认状态下的输出流格式是十进制。,【例11.10】用不同的进制输出200: #include #include void main(void) int num=200; cout“Default:t“numendl“Decimal:t“num

11、endl;,cout“Octal:tt“octnumendl; cout“Hexadecimal:t“hexnumendl; coutsetbase(16) “Hexadecimal:t“numendl; ,输出结果为: Default: 200 Decimal: 200 Octal: 310 Hexadecimal: c8 Hexadecimal: c8,3. 控制值的输出宽度setw 可以使用setw(int nw)操作器来确定输出域的宽度。如果一个值所需的字符数比setw(int nw)给定的字符数nw多,则该值将使用它所需的所有字符。如果一个值所需的字符数少,则数字前填充空格。,【例1

12、1.11】setw应用举例。 #include #include void main(void) for(int i=4;i=8;i+) coutsetw(i)12345endl; ,输出结果: 12345 12345 12345 12345 12345,4. 控制填充字符setfill setfill(int nFill)用来在空白处填充字符。 5. 其他操作器ends、flush、ws ends:插入空终结符(0) flush:刷新流。 ws:仅用于输入,跳过空格。,11.2.2.2 流的格式化标志 1. 使用setiosflags或resetiosflags操作器设置格式 操作器seti

13、osflags(long lFlags)用于设置由lFlags标示的格式化标志。表12.1给出了格式化标志及其作用。,【例11.12】格式化标志的应用举例。 #include #include void main(void) double pie=3.1415926,x=3.5; int n=255,m=300; coutnendl; /默认状态下为十进制,coutsetiosflags(ios:hex)nendl; /十六进制 coutsetiosflags(ios:hex|ios:uppercase) /十六进制、字符大写 nendl; coutsetiosflags(ios:hex|io

14、s:uppercase,|ios:showbase)nendl; /十六进制、字符大写、带基指示符 coutsetw(6)setiosflags(ios:right /右对齐、十六进制、 |ios:uppercase|ios:showbase) /字符大写、带基指示符,nendl; coutmendl; /除左对齐外,其他与上条语句输出相同 /说明设置的标志位仍然起作用 coutresetiosflags(ios:hex) /恢复为十进制 nendl; coutpieendl; /默认输出浮点数,coutsetiosflags(ios:showpos) /输出带“+” xendl; couts

15、etiosflags(ios:scientific) /带“+”、科学计数法 xendl; coutresetiosflags(ios:uppercase) /恢复为小写e,仍为科学计数法,pieendl; coutsetiosflags(ios:fixed) /带“+”、定点数 xendl; coutsetiosflags(ios:showpoint) /带“+”、定点数、带小数点 xendl; coutresetiosflags(ios:showpoint|ios:showpos) /去除定点和“+” xendl; ,输出结果为: 255 ff FF 0XFF 0XFF,0X12C 255

16、 3.14159 +3.5 +3.500000E+000 +3.141593e+000 +3.5 +3.50000 3.5,2. 使用成员函数设置格式 setf(long lFlags)函数用来设置格式化标志,unsetf(long lFlags)函数是恢复标志位。,11.2.2.3 格式化成员函数 1. 填充和获取字符的成员函数fill fill是重载函数,分别为fill(char nFill)和fill() fill(char nFill) 用于填充字符。,例如: cout.fill(a); 或 cout.fill(100); fill()用于获取当前的填充字符。例如: coutsetfill(65); coutcout.fill()

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号