slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
目 录 PowerPoint Presentation
Download Presentation
目 录

Loading in 2 Seconds...

play fullscreen
1 / 25

目 录 - PowerPoint PPT Presentation


  • 139 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1
第1章 C++概述

第2章 数据类型、运算符和表达式

第3章 简单的输入/输出

第4章 C++的流程控制

第5章 函数

第6章 编译预处理

第7章 数组

第8章 结构体、共同体和枚举类型

第9章 指针和引用

第10章 类和对象

第11章 类和对象的其他特性

第12章 继承和派生

第13章 多态性

第14章 输入/输出流

第15章 模板

目 录
  • 第一部分 面向过程的程序设计
  • 第二部分 面向对象的程序设计
slide3
3.1 传统的输入/输出函数实现方法

输入:从键盘输入数据赋给变量

输出:指计算机把计算结果送到显示器上显示

应用程序可以包含零个或多个输入

应用程序至少包含一个或多个输出

传统程序使用I/O函数实现输入/输出操作

C++程序使用操作符重载方法实现输入/输出流技术

C++中输入/输出实现更加简单方便

3 2 cin
3.2 cin 输入流

键盘输入称为标准输入(standard input)

显示器输出称为标准输出(standard output)

C++中通过输入/输出流来实现标准输出/输出操作。

输入操作通过流cin来实现

输出操作通过流cout来实现

使用输入流 cin ,必须在程序的第一行包含头文件。

即:#include <iostream.h>

3 2 cin1
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

3 2 cin2
3.2 cin 输入流

每行末尾输入回车键的作用是:

1.告诉cin一行数据已经输入完毕,cin开始提取用户输入的数据(忽略分隔符),并依次将所提取的数据赋值给cin中所列举的变量中尚未获得数据的变量。

2.在屏幕上显示光标换行,为下一行的输入或者显示程序的输出结果做好准备,起到输入数据之间以及输入数据与输出结果之间的分隔符的作用。

用户输入数据的个数小于变量的个数。则在提取完输入行的有效数据后仍有变量没有获得数值,当前的输入语句不会结束,会继续等待用户输入新的一行数据。

3 2 cin3
3.2 cin 输入流

用户输入的数据个数大于变量的个数。则输入语句只依次提取输入行中的部分数值给变量。而多余的数值会被下一条cin输入语句中的变量所提取,或者在没有后续的输入语句的情况下被程序舍弃。

int i , j ;

cin >> i >> j ;

若输入:100 200 300<Enter>,300将被程序舍弃。

如果用户输入的一行仅仅是一个回车键,则cin把该键作为分隔符来处理(将其忽略),只是在屏幕上显示光标换行,程序会继续等待用户输入数据。

3 2 cin4
3.2 cin 输入流

输入数据的类型由cin根据变量的类型来自动判定。从键盘上输入数据的个数、类型及顺序,必须与cin中列举的变量一一对应。

例如:

int a, b;

cin >> a >> b;

执行cin时,若输入字符数据:

D F <Enter>

由于用户输入的数据是字符类型,而对应的接收变量是整数类型,两者类型不匹配,变量a得不到有效值,其值为0。后续的变量b受影响无法继续获得数值,其值为一个随机数。错误会继续向后延伸,造成后续的cin语句也不能正确提取数据。

3 2 cin5
3.2 cin 输入流

例如:

int a;

float b;

cin >> b >> a;

执行cin时,若输入:300 1.234 <Enter>.

实型b变量获得300.0的数值。而整型变量a同样进行数据类型转换,将小数1.234转换为整数1,小数部分被丢弃。

slide10

必须在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 输入十六进制或者八进制数据

slide11

必须在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

slide12

使用非十进制输入数据时,要注意几点:

1.八进制或十六进制数的输入,只适用于整型变量,不适用于字符型变量、实型变量。

2.当在cin中指明使用的输入数制后,则所指明的数制一直有效,直到在下一个cin语句中指明采用不同的输入数制时为止。

3.用户从键盘输入数据的格式、个数和类型必须与cin中所列举的变量类型一一对应。一旦输入出错,不仅使当前的输入数据不正确,而且使得后面的提取数据也不正确。

3.2.1 输入十六进制或者八进制数据

slide13

例: char c1 , c2 , c3 ;

cin >> c1 >> c2 >> c3;

3.2.2 输入字符数据

运行时:

输入:a b c <回车>

或输入:abc <回车>

则 变量c1、c2、c3 的值为 'a' 、'b' 、'c'

cin 自动跳过输入的空格

slide14
欲将空格输入给变量,则应使用 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'

slide15
例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’字符将被舍弃。

slide16
还可以使用cin.ignore( )函数对输入的内容有选择的接收。cin.ignore( )的作用是在字符读取过程中忽略若干个字符,而读取后面的字符。其格式为:

cin.ignore( <忽略的字符个数> );

例如:

cin >> a >> b;

cin.ignore(3);

cin >> c >> d;

输入:12 34 5678 <Enter>

输出结果:12, 34, 7, 8

slide17
借助函数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值为<回车>

3 3 cout
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,则不输出小数点。
3 3 cout1
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'的意义

3 3 cout2
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

3 3 cout3
3.3 cout 输出流

使用setw( )函数应该注意以下四点:

1.setw( )函数是定义在iomanip.h头文件中的系统函数,所以要使用它就必须在程序的开始位置包含头文件iomanip.h,即在程序的开头增加:

#include <iomanip.h>

2.括号中必须给出一个正整数或者数学表达式(值为正整数),它指明紧跟其后输出的数据项的宽度。

3.该设置仅对其后的一个输出项有效。一旦按指定的宽度输出其后的输出项后,程序又自动回到原来的按实际宽度输出的缺省输出方式。

4.当设置了数据的输出宽度后,如果数据的实际位数小于指定的宽度,则添加填充符。如果数据的实际位数大于指定的宽度,则数据按照实际的宽度输出,不会按照指定的宽度来截断数据。

slide22

例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

slide23
hex和oct在输出流cout中与cin中的用法类似,一旦指定了输出的进制格式后,这种格式将一直有效,直到指定另外一种格式为止。hex和oct在输出流cout中与cin中的用法类似,一旦指定了输出的进制格式后,这种格式将一直有效,直到指定另外一种格式为止。

在程序中调用了两个系统函数:cout.setf( )和cout.unsetf( )。其中,cout.setf( )函数用来指定对实数按照科学计数法格式输出,而cout.unsetf( )用来终止对实数按照科学计数法格式输出。

一旦指定了按照科学计数法输出实数,其后所有的实数都将按照科学计数法的格式输出,直到取消科学计数法的输出格式为止。

slide24

cout除了能够输出正常可视的标准字符外,还可以输出字符串和转义字符。

例如:

char c='a',c1='b';

cout << "c=" << c << '\t' << "c1=" << c1 << '\n';

3.3.2 输出字符或字符串