1 / 25

目 录

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

Download Presentation

目 录

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. 第3章 简单的输入/输出

  3. 3.1 传统的输入/输出函数实现方法 输入:从键盘输入数据赋给变量 输出:指计算机把计算结果送到显示器上显示 应用程序可以包含零个或多个输入 应用程序至少包含一个或多个输出 传统程序使用I/O函数实现输入/输出操作 C++程序使用操作符重载方法实现输入/输出流技术 C++中输入/输出实现更加简单方便

  4. 3.2 cin 输入流 键盘输入称为标准输入(standard input) 显示器输出称为标准输出(standard output) C++中通过输入/输出流来实现标准输出/输出操作。 输入操作通过流cin来实现 输出操作通过流cout来实现 使用输入流 cin ,必须在程序的第一行包含头文件。 即:#include <iostream.h>

  5. 3.2 cin 输入流 cin一般格式: cin >> <变量1> [ >> <变量2>... >> <变量n> ] “>>”称为提取运算符,表示程序暂停执行,等待从输入流中提取数据赋给变量 将cin想象成键盘,“>>”想象成数据流向箭头,可以很容易记忆输入操作 例:int i , j ; float x , y ; cin >> i >> j ; cin >> x >> y ; 输入的数据之间用分隔符分隔:<空格>、<回车>、<Tab键> 运行时: 输入:1  2 <回车> 3.2  4.5 <回车> 则 变量i、j 的值为 1、2 变量 x、y 的值 3.2 和 4.5

  6. 3.2 cin 输入流 每行末尾输入回车键的作用是: 1.告诉cin一行数据已经输入完毕,cin开始提取用户输入的数据(忽略分隔符),并依次将所提取的数据赋值给cin中所列举的变量中尚未获得数据的变量。 2.在屏幕上显示光标换行,为下一行的输入或者显示程序的输出结果做好准备,起到输入数据之间以及输入数据与输出结果之间的分隔符的作用。 用户输入数据的个数小于变量的个数。则在提取完输入行的有效数据后仍有变量没有获得数值,当前的输入语句不会结束,会继续等待用户输入新的一行数据。

  7. 3.2 cin 输入流 用户输入的数据个数大于变量的个数。则输入语句只依次提取输入行中的部分数值给变量。而多余的数值会被下一条cin输入语句中的变量所提取,或者在没有后续的输入语句的情况下被程序舍弃。 int i , j ; cin >> i >> j ; 若输入:100 200 300<Enter>,300将被程序舍弃。 如果用户输入的一行仅仅是一个回车键,则cin把该键作为分隔符来处理(将其忽略),只是在屏幕上显示光标换行,程序会继续等待用户输入数据。

  8. 3.2 cin 输入流 输入数据的类型由cin根据变量的类型来自动判定。从键盘上输入数据的个数、类型及顺序,必须与cin中列举的变量一一对应。 例如: int a, b; cin >> a >> b; 执行cin时,若输入字符数据: D F <Enter> 由于用户输入的数据是字符类型,而对应的接收变量是整数类型,两者类型不匹配,变量a得不到有效值,其值为0。后续的变量b受影响无法继续获得数值,其值为一个随机数。错误会继续向后延伸,造成后续的cin语句也不能正确提取数据。

  9. 3.2 cin 输入流 例如: int a; float b; cin >> b >> a; 执行cin时,若输入:300 1.234 <Enter>. 实型b变量获得300.0的数值。而整型变量a同样进行数据类型转换,将小数1.234转换为整数1,小数部分被丢弃。

  10. 必须在cin中指明相应的数据类型:hex表示十六进制,oct表示八进制,dec表示十进制。必须在cin中指明相应的数据类型:hex表示十六进制,oct表示八进制,dec表示十进制。 例3.3:#include <iostream.h> void main( ) { int a,b,c,d; // 变量名a,b,c,d cin >> hex >> a; //指明输入为十六进制数 cin >> oct >> b; //指明输入为八进制数 cin >> c; //输入仍旧是八进制数 cin >> dec >> d; //指明输入为十进制数 cout << a <<','<< b <<','<< c <<','<< d << endl; } 3.2.1 输入十六进制或者八进制数据

  11. 必须在cin中指明相应的数据类型:hex表示十六进制,oct表示八进制,dec表示十进制。必须在cin中指明相应的数据类型:hex表示十六进制,oct表示八进制,dec表示十进制。 例3.3:#include <iostream.h> void main( ) { int a,b,c,d; // 变量名a,b,c,d cin >> hex >> a; //指明输入为十六进制数 cin >> oct >> b; //指明输入为八进制数 cin >> c; //输入仍旧是八进制数 cin >> dec >> d; //指明输入为十进制数 cout << a <<','<< b <<','<< c <<','<< d << endl; } 3.2.1 输入十六进制或者八进制数据 输入:20 21 22 23 <Enter> a=32, b=17, c=18, d=23

  12. 使用非十进制输入数据时,要注意几点: 1.八进制或十六进制数的输入,只适用于整型变量,不适用于字符型变量、实型变量。 2.当在cin中指明使用的输入数制后,则所指明的数制一直有效,直到在下一个cin语句中指明采用不同的输入数制时为止。 3.用户从键盘输入数据的格式、个数和类型必须与cin中所列举的变量类型一一对应。一旦输入出错,不仅使当前的输入数据不正确,而且使得后面的提取数据也不正确。 3.2.1 输入十六进制或者八进制数据

  13. 例: char c1 , c2 , c3 ; cin >> c1 >> c2 >> c3; 3.2.2 输入字符数据 运行时: 输入:a b c <回车> 或输入:abc <回车> 则 变量c1、c2、c3 的值为 'a' 、'b' 、'c' cin 自动跳过输入的空格

  14. 欲将空格输入给变量,则应使用 cin.get( ) 函数。 例: char c1 , c2 , c3 ; cin.get(c1); cin.get(c2); cin.get(c3); 运行时: 输入:a b c <回车> 则 变量c1、c2、c3 的值为 'a' 、' ' 、'b' 输入:abc <回车> 则 变量c1、c2、c3 的值为 'a' 、'b' 、'c'

  15. 例3.4:#include <iostream.h> void main( ) { int a, b; char c, d; cin >> a >> b; cin >> c >> d; cout << a <<','<< b <<','<< c <<','<< d << endl; } 用户输入:12 34 5678 <Enter>. 将12赋值给变量a,将34赋值给变量b。 将‘5’字符赋值给变量c,将‘6’字符赋值给变量d。 剩余的‘7’字符和‘8’字符将被舍弃。

  16. 还可以使用cin.ignore( )函数对输入的内容有选择的接收。cin.ignore( )的作用是在字符读取过程中忽略若干个字符,而读取后面的字符。其格式为: cin.ignore( <忽略的字符个数> ); 例如: cin >> a >> b; cin.ignore(3); cin >> c >> d; 输入:12 34 5678 <Enter> 输出结果:12, 34, 7, 8

  17. 借助函数cin.get( )可以将三种分隔符作为字符输入计算机。 函数cin.get( )的作用是把从键盘上输入的每一个字符,包括空格符和回车符等分隔符都作为一个输入字符赋给字符型变量。其格式为: cin.get( <字符型变量> ); 例如:char c5, c6, c7, c8; cin.get(c5); cin.get(c6); cin.get(c7); cin.get(c8); 如果用户输入:AB <Enter>. c5值为‘A’,c6值为<空格>, c7值为‘B’,c8值为<回车>

  18. 3.3 cout 输出流 cout一般格式: cout << <表达式1> [ << <表达式2>... << <表达式n> ] “<<”称为插入运算符,表示将表达式的运算结果插入到输出流的末尾,即在显示器上显示。 将cout想象成显示器,“<<”想象成数据流向箭头,可以很容易记忆输出操作 例3.6:int 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; 运行结果: 1020 3060 5.23100 注意: • 输出数据之间无空白。 • endl 与 ‘\n’等价。 • 输出实型数,小数点后若为0,则不输出小数点。

  19. 3.3 cout 输出流 为了区分输出的数据项,在每一个输出数据之间要输出分隔符。分隔符可以是空格、标点符号或者换行符等。 例如:cout << a << ',' << b<< endl; cout << c << ',' << n-d << endl; cout << m << ',' << n << endl; 输出结果:10, 20 30, 60 5.23, 100 例如: cout <<"a=" << a << '\t' <<"b=" << b << endl; cout <<"c=" << c << '\t' << n << "-" << d <<"=" << n-d << endl; cout <<"m=" << m << '\t' <<"n="<< n << endl; 输出结果:a=10     b=20 c=30     100-40=60 m=5.23   n=100 '\t'的意义

  20. 3.3 cout 输出流 使输出的数据项之间隔开的另一种办法是使用setw( )函数来指定输出数据项的宽度。 例如: 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(10)指明其后的输出项占用的字符宽度为10(小数点占一位),并且向右对齐。setw是“set width”的缩写。 输出结果为: 10 20 30 60 5.23 100

  21. 3.3 cout 输出流 使用setw( )函数应该注意以下四点: 1.setw( )函数是定义在iomanip.h头文件中的系统函数,所以要使用它就必须在程序的开始位置包含头文件iomanip.h,即在程序的开头增加: #include <iomanip.h> 2.括号中必须给出一个正整数或者数学表达式(值为正整数),它指明紧跟其后输出的数据项的宽度。 3.该设置仅对其后的一个输出项有效。一旦按指定的宽度输出其后的输出项后,程序又自动回到原来的按实际宽度输出的缺省输出方式。 4.当设置了数据的输出宽度后,如果数据的实际位数小于指定的宽度,则添加填充符。如果数据的实际位数大于指定的宽度,则数据按照实际的宽度输出,不会按照指定的宽度来截断数据。

  22. 例3.7:#include <iostream.h> 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);//按照科学计数法输出实数 cout << "c=" << hex << c << '\t' << "n-d=" << n-d << endl; cout << "m=" << m << endl; cout.unsetf(ios::scientific); //取消按照科学计数法输出 cout << "m=" << m << '\t' << "n=" << n << endl; } 3.3.1 输出八进制、十六进制数和实数 执行该程序后,输出: a=12 b=24 c=1e n-d=6.000000e+001 m=5.230000e+000 m=5.23 n=100

  23. hex和oct在输出流cout中与cin中的用法类似,一旦指定了输出的进制格式后,这种格式将一直有效,直到指定另外一种格式为止。hex和oct在输出流cout中与cin中的用法类似,一旦指定了输出的进制格式后,这种格式将一直有效,直到指定另外一种格式为止。 在程序中调用了两个系统函数:cout.setf( )和cout.unsetf( )。其中,cout.setf( )函数用来指定对实数按照科学计数法格式输出,而cout.unsetf( )用来终止对实数按照科学计数法格式输出。 一旦指定了按照科学计数法输出实数,其后所有的实数都将按照科学计数法的格式输出,直到取消科学计数法的输出格式为止。

  24. cout除了能够输出正常可视的标准字符外,还可以输出字符串和转义字符。 例如: char c='a',c1='b'; cout << "c=" << c << '\t' << "c1=" << c1 << '\n'; 3.3.2 输出字符或字符串

  25. 第3 章完

More Related