第03章 简单的输入输出_第1页
第03章 简单的输入输出_第2页
第03章 简单的输入输出_第3页
第03章 简单的输入输出_第4页
第03章 简单的输入输出_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1目目 录录F第第1章章 C+概述概述F第第2章章 数据类型、运算符和表达式数据类型、运算符和表达式F第第3章章 简单的输入简单的输入/输出输出F第第4章章 C+的流程控制的流程控制F第第5章章 函数函数F第第6章章 编译预处理编译预处理F第第7章章 数组数组F第第8章章 结构体、共同体和枚举类型结构体、共同体和枚举类型F第第9章章 指针和引用指针和引用F第第10章章 类和对象类和对象F第第11章章 类和对象的其他特性类和对象的其他特性F第第12章章 继承和派生继承和派生F第第13章章 多态性多态性F第第14章章 输入输入/输出流输出流F第第15章章 模板模板v第一部分第一部分 面向过程的程序

2、设计面向过程的程序设计v第二部分第二部分 面向对象的程序设计面向对象的程序设计2第第3章章 简单的输入简单的输入/输出输出33.1 传统的输入/输出函数实现方法输入输入:从键盘输入数据赋给变量:从键盘输入数据赋给变量输出输出:指计算机把计算结果送到显示器上显示:指计算机把计算结果送到显示器上显示应用程序可以包含应用程序可以包含零个或多个零个或多个输入输入应用程序至少包含应用程序至少包含一个或多个一个或多个输出输出传统程序使用传统程序使用I/OI/O函数实现输入函数实现输入/ /输出操作输出操作C+C+程序使用操作符重载方法实现输入程序使用操作符重载方法实现输入/ /输出流技术输出流技术C+C+

3、中输入中输入/ /输出实现更加简单方便输出实现更加简单方便43.2 cin 输入流键盘输入称为键盘输入称为标准输入标准输入(standard inputstandard input)显示器输出称为显示器输出称为标准输出标准输出(standard outputstandard output)C+C+中通过输入中通过输入/ /输出流来实现标准输出输出流来实现标准输出/ /输出操作。输出操作。输入操作通过流输入操作通过流cincin来实现来实现输出操作通过流输出操作通过流coutcout来实现来实现使用输入流使用输入流 cincin ,必须在程序的第一行包含头文件。,必须在程序的第一行包含头文件。即

4、:#include 53.2 cin 输入流cincin一般格式:一般格式:cin . “” “”称为提取运算符,表示程序暂停执行,等称为提取运算符,表示程序暂停执行,等待从输入流中提取数据赋给变量待从输入流中提取数据赋给变量 将将cincin想象成键盘,想象成键盘,“”想象成数据流向箭头,想象成数据流向箭头,可以很容易记忆输入操作可以很容易记忆输入操作例:例:intint i , j ; i , j ; float x , y ; float x , y ; cin cin i j ; i j ; cin cin x y ; x y ; 输入的数据之间用输入的数据之间用分隔符分隔符分隔:分隔

5、: 、 、Tab 运行时:运行时:输入:输入:1 2 3.2 4.5 则则 变量变量 i、j 的值为的值为 1、2 变量变量 x、y 的值的值 3.2 和和 4.563.2 cin 输入流每行末尾输入回车键的作用是:每行末尾输入回车键的作用是:1 1告诉告诉cincin一行数据已经输入完毕,一行数据已经输入完毕,cincin开始提取用户开始提取用户输入的数据(忽略分隔符),并依次将所提取的数输入的数据(忽略分隔符),并依次将所提取的数据赋值给据赋值给cincin中所列举的变量中尚未获得数据的变量。中所列举的变量中尚未获得数据的变量。2 2在屏幕上显示光标换行,为下一行的输入或者显示在屏幕上显示

6、光标换行,为下一行的输入或者显示程序的输出结果做好准备,起到输入数据之间以及程序的输出结果做好准备,起到输入数据之间以及输入数据与输出结果之间的分隔符的作用。输入数据与输出结果之间的分隔符的作用。 用户输入数据的个数小于变量的个数用户输入数据的个数小于变量的个数。则在提取。则在提取完输入行的有效数据后仍有变量没有获得数值,当完输入行的有效数据后仍有变量没有获得数值,当前的输入语句不会结束,会继续等待用户输入新的前的输入语句不会结束,会继续等待用户输入新的一行数据。一行数据。73.2 cin 输入流 用户输入的数据个数大于变量的个数用户输入的数据个数大于变量的个数。则输入语。则输入语句只依次提取

7、输入行中的部分数值给变量。而多余句只依次提取输入行中的部分数值给变量。而多余的数值会被下一条的数值会被下一条cincin输入语句中的变量所提取,或输入语句中的变量所提取,或者在没有后续的输入语句的情况下被程序舍弃。者在没有后续的输入语句的情况下被程序舍弃。 intint i , j ; i , j ; cin cin i j ; i j ; 若输入:若输入:100 200 300100 200 300,300300将被程序舍将被程序舍弃。弃。 如果用户输入的一行仅仅是一个回车键,则如果用户输入的一行仅仅是一个回车键,则cincin把把该键作为分隔符来处理(将其忽略),该键作为分隔符来处理(将其

8、忽略),只是在屏幕只是在屏幕上显示光标换行,程序会继续等待用户输入数据上显示光标换行,程序会继续等待用户输入数据。 83.2 cin 输入流 输入数据的类型由输入数据的类型由cincin根据变量的类型来自动判定。根据变量的类型来自动判定。从键盘上输入数据的个数、类型及顺序,必须与从键盘上输入数据的个数、类型及顺序,必须与cincin中列举的变量一一对应。中列举的变量一一对应。 例如:例如: int a, b; cin a b; 执行cin时,若输入字符数据: D F 由于用户输入的数据是字符类型,而对应的接收由于用户输入的数据是字符类型,而对应的接收变量是整数类型,两者类型不匹配,变量变量是整

9、数类型,两者类型不匹配,变量a a得不到有得不到有效值,其值为效值,其值为0 0。后续的变量。后续的变量b b受影响无法继续获得受影响无法继续获得数值,其值为一个随机数。数值,其值为一个随机数。错误会继续向后延伸,错误会继续向后延伸,造成后续的造成后续的cincin语句也不能正确提取数据。语句也不能正确提取数据。 93.2 cin 输入流 例如:例如:int a;float b;cin b a; 执行执行cincin时,若输入:时,若输入:300 1.234 .300 1.234 . 实型实型b b变量获得变量获得300.0300.0的数值。而整型变量的数值。而整型变量a a同样进同样进行数据

10、类型转换,将小数行数据类型转换,将小数1.2341.234转换为整数转换为整数1 1,小数,小数部分被丢弃。部分被丢弃。 103.2.1 输入十六进制或者八进制数据输入十六进制或者八进制数据 必须在必须在cincin中指明相应的数据类型:中指明相应的数据类型:hexhex表示十六表示十六进制,进制,octoct表示八进制,表示八进制,decdec表示十进制。表示十进制。 例例3.33.3:#include iostream.h#include void main( ) int a,b,c,d; / 变量名a,b,c,d cin hex a; /指明输入为十六进制数 cin oct b; /指明

11、输入为八进制数 cin c; /输入仍旧是八进制数 cin dec d; /指明输入为十进制数 cout a , b , c , d endl;113.2.1 输入十六进制或者八进制数据输入十六进制或者八进制数据 必须在必须在cincin中指明相应的数据类型:中指明相应的数据类型:hexhex表示十六表示十六进制,进制,octoct表示八进制,表示八进制,decdec表示十进制。表示十进制。 例例3.33.3:#include iostream.h#include void main( ) int a,b,c,d; / 变量名a,b,c,d cin hex a; /指明输入为十六进制数 cin

12、 oct b; /指明输入为八进制数 cin c; /输入仍旧是八进制数 cin dec d; /指明输入为十进制数 cout a , b , c , d endl;输入:输入:20 21 22 23 a=32, b=17, c=18, d=23123.2.1 输入十六进制或者八进制数据输入十六进制或者八进制数据 使用非十进制输入数据时,要注意几点:使用非十进制输入数据时,要注意几点:1 1八进制或十六进制数的输入,只适用于整型变量,八进制或十六进制数的输入,只适用于整型变量,不适用于字符型变量、实型变量。不适用于字符型变量、实型变量。2 2当在当在cincin中指明使用的输入数制后,则所指明

13、的数中指明使用的输入数制后,则所指明的数制一直有效,直到在下一个制一直有效,直到在下一个cincin语句中指明采用不同语句中指明采用不同的输入数制时为止。的输入数制时为止。3 3用户从键盘输入数据的格式、个数和类型必须与用户从键盘输入数据的格式、个数和类型必须与cincin中所列举的变量类型一一对应。一旦输入出错,中所列举的变量类型一一对应。一旦输入出错,不仅使当前的输入数据不正确,而且使得后面的提不仅使当前的输入数据不正确,而且使得后面的提取数据也不正确。取数据也不正确。133.2.2 输入字符数据输入字符数据例:例: char c1 , c2 , c3 ;char c1 , c2 , c3

14、 ; cin cin c1 c2 c3; c1 c2 c3;运行时:运行时:输入:输入:a a b b c c 或输入:或输入:abcabc 则则 变量变量 c1c1、c2c2、c3 c3 的值为的值为 a a 、b b 、c c cincin 自动跳过输入的空格自动跳过输入的空格14 欲将空格输入给变量,则应使用欲将空格输入给变量,则应使用 cin.getcin.get( ) ( ) 函数。函数。例:例: char c1 , c2 , c3 ;char c1 , c2 , c3 ; cin.get(c1); cin.get(c1); cin.get(c2); cin.get(c2); cin

15、.get(c3); cin.get(c3);运行时:运行时:输入:输入:a a b b c c 则则 变量变量 c1c1、c2c2、c3 c3 的值为的值为 a a 、 、b b 输入:输入:abcabc 则则 变量变量 c1c1、c2c2、c3 c3 的值为的值为 a a 、b b 、c c 15例例3.43.4:#include iostream.h#include void main( ) int a, b; char c, d; cin a b; cin c d; cout a , b , c , d endl; 用户输入:用户输入:12 34 5678 .12 34 5678 . 将

16、将1212赋值给变量赋值给变量a a,将,将3434赋值给变量赋值给变量b b。 将将55字符赋值给变量字符赋值给变量c c,将,将66字符赋值给变字符赋值给变量量d d。 剩余的剩余的77字符和字符和88字符将被舍弃。字符将被舍弃。16 还可以使用还可以使用cin.ignorecin.ignore( )( )函数对输入的内容有选函数对输入的内容有选择的接收择的接收。cin.ignorecin.ignore( )( )的作用是在字符读取过程的作用是在字符读取过程中忽略若干个字符,而读取后面的字符。其格式为:中忽略若干个字符,而读取后面的字符。其格式为: cin.ignorecin.ignore

17、( ( ); ); 例如:例如:cin a b; cin.ignore(3);cin c d; 输入:输入:12 34 12 34 565678 78 输出结果:输出结果:12, 34, 7, 812, 34, 7, 817 借助函数借助函数cin.getcin.get( )( )可以将三种分隔符作为字符可以将三种分隔符作为字符输入计算机。输入计算机。 函数函数cin.getcin.get( )( )的作用是把从键盘上输入的每一的作用是把从键盘上输入的每一个字符,包括空格符和回车符等分隔符都作为一个个字符,包括空格符和回车符等分隔符都作为一个输入字符赋给字符型变量。其格式为:输入字符赋给字符型

18、变量。其格式为: cin.get( ); 例如:例如:char c5, c6, c7, c8;char c5, c6, c7, c8; cin.get(c5); cin.get(c6); cin.get(c7); cin.get(c8); 如果用户输入:如果用户输入:A A B .B . c5 c5值为值为AA,c6c6值为值为 , c7c7值为值为BB,c8c8值为值为 183.3 cout 输出流coutcout一般格式一般格式:cout . “ “”称为插入运算符,表示将表达式的运算结称为插入运算符,表示将表达式的运算结果插入到输出流的末尾,即在显示器上显示。果插入到输出流的末尾,即在显

19、示器上显示。 将将coutcout想象成显示器,想象成显示器,“”想象成数据流向箭想象成数据流向箭头,可以很容易记忆输出操作头,可以很容易记忆输出操作例例3.63.6:intint a=10, b=20, c=30, d=40; a=10, b=20, c=30, d=40; double m=5.23, n=100; cout a b endl; cout c n-d endl; cout m n endl;运行结果:运行结果:102030605.23100注意:注意:输出数据之间无空白。输出数据之间无空白。 endl 与与 n 等价。等价。输出实型数,小数点后若输出实型数,小数点后若为为0

20、,则不输出小数点。,则不输出小数点。193.3 cout 输出流 为了区分输出的数据项,在每一个输出数据之间要输出分隔为了区分输出的数据项,在每一个输出数据之间要输出分隔符。分隔符可以是空格、标点符号或者换行符等。符。分隔符可以是空格、标点符号或者换行符等。 例如:例如:cout a , b endlcout a , b endl; ; cout c , n-d endl; cout m , n endl; 输出结果:输出结果:10, 2010, 20 30, 60 5.23, 100 例如:例如:cout a= a t b= b endl;cout c= c t n - d = n-d en

21、dl; cout m= m t n= n endl; 输出结果:输出结果:a=10 a=10 b=20b=20 c=30 100-40=60 m=5.23 n=100 t的意义的意义203.3 cout 输出流 使输出的数据项之间隔开的另一种办法是使用使输出的数据项之间隔开的另一种办法是使用setwsetw( )( )函数来函数来指定输出数据项的宽度。指定输出数据项的宽度。 例如:例如:cout setw(10) a setw(10) b endl;cout setw(10) c setw(10) n-d endl;cout setw(10) m setw(10) n endl; setw(1

22、0) setw(10)指明其后的输出项占用的字符宽度为指明其后的输出项占用的字符宽度为1010(小数点占(小数点占一位),并且向右对齐。一位),并且向右对齐。setwsetw是是“set width”set width”的缩写。的缩写。 输出结果为:输出结果为:10 2030 605.23 100213.3 cout 输出流 使用使用setwsetw( )( )函数应该注意以下四点:函数应该注意以下四点:1 1setwsetw( )( )函数是定义在函数是定义在iomanip.hiomanip.h头文件中的系统函数,头文件中的系统函数,所以要使用它就必须在程序的开始位置包含头文件所以要使用它就

23、必须在程序的开始位置包含头文件iomanip.hiomanip.h,即在程序的开头增加:,即在程序的开头增加: #include 2 2括号中必须给出一个正整数或者数学表达式(值为正括号中必须给出一个正整数或者数学表达式(值为正整数),它指明紧跟其后输出的数据项的宽度。整数),它指明紧跟其后输出的数据项的宽度。3 3该设置仅对其后的一个输出项有效。一旦按指定的宽该设置仅对其后的一个输出项有效。一旦按指定的宽度输出其后的输出项后,程序又自动回到原来的按实度输出其后的输出项后,程序又自动回到原来的按实际宽度输出的缺省输出方式。际宽度输出的缺省输出方式。4 4当设置了数据的输出宽度后,如果数据的实际

24、位数小当设置了数据的输出宽度后,如果数据的实际位数小于指定的宽度,则添加填充符。如果数据的实际位数于指定的宽度,则添加填充符。如果数据的实际位数大于指定的宽度,则数据按照实际的宽度输出,不会大于指定的宽度,则数据按照实际的宽度输出,不会按照指定的宽度来截断数据。按照指定的宽度来截断数据。223.3.1 输出八进制、十六进制数和实数输出八进制、十六进制数和实数例例3.7:#include void main(void) int a=10, b=20, c=30, d=40;double m=5.23, n=100;cout a= oct a t b= b endl; cout.setf(ios:scientific, ios:floatfield);/按照科学计数法输出实数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论