c++简单的输入输出
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章 简单的输入/输出
1 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
第3章 简单的输入/输出
3.1 传统的输入/输出函数实现方法
输入:从键盘输入数据赋给变量 输出:指计算机把计算结果送到显示器上显示 应用程序可以包含零个或多个输入 应用程序至少包含一个或多个输出 传统程序使用I/O函数实现输入/输出操作 C++程序使用操作符重载方法实现输入/输出流技术 C++中输入/输出实现更加简单方便
输出结果:10, 20
30, 60 5.23, 100
例如:
'\t'的意义
cout <<"a=" << a << '\t' <<"b=" << b << endl; cout <<"c=" << c << '\t' << n << "-" << d <<"=" << n-d << endl; cout <<"m=" << m << '\t' <<"n="<< n << endl;
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2.1 输入十六进制或者八进制数据
必须在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; //输入仍旧是八进制数 输入:20 21 22 23 <Enter> cin >> dec >> d; //指明输入为十进制数 a=32, b=17, c=18, d=23 cout << a <<','<< b <<','<< c <<','<< d << endl; 10 }
⎣⎦
则 变量 c1、c2、c3 的值为 'a' 、'
<回车>
' 、'b'
13 则 变量 c1、c2、c3 的值为 'a' 、'b' 、'c' 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
例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。 14 剩余的‘7’字符和‘8’字符将被舍弃。
运行时: 例:int i , j ; float x , y ; 输入:1 ⎣⎦ 2 <回车> cin >> i >> j ; 3.2 ⎣⎦ 4.5 <回车> cin >> x >> y ; 则 变量 i、j 的值为 1、2 变量 x、y 的值 3.2 和 4.5 输入的数据之间用分隔符分隔:<空格>、<回车>、 <Tab键>
12 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
欲将空格输入给变量,则应使用 cin.get( ) 函数。 例: char c1 , c2 , c3 ; cin.get(c1); cin.get(c2); cin.get(c3); 运行时: 输入:a ⎣⎦ b 输入:abc
⎣⎦
c
<回车>
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
还可以使用cin.ignore( )函数对输入的内容有选 择的接收。cin.ignore( )的作用是在字符读取过程 中忽略若干个字符,而读取后面的字符。其格式为: cin.ignore( <忽略的字符个数> ); 例如: cin >> a >> b; cin.ignore(3); cin >> c >> d; 输入:12 34 5678 <Enter>
5 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2 cin 输入流
用户输入的数据个数大于变量的个数。则输入语 句只依次提取输入行中的部分数值给变量。而多余 的数值会被下一条cin输入语句中的变量所提取,或 者在没有后续的输入语句的情况下被程序舍弃。 int i , j ; cin >> i >> j ; 若输入:100 200 300<Enter>,300将被程序舍 弃。 如果用户输入的一行仅仅是一个回车键,则cin把 该键作为分隔符来处理(将其忽略),只是在屏幕 上显示光标换行,程序会继续等待用户输入数据。
输出结果:a=10
⎣⎦ ⎣⎦ ⎣⎦ ⎣⎦
⎣⎦ ⎣⎦ ⎣⎦ ⎣⎦ ⎣⎦ ⎣⎦
c=30 m=5.23
b=20 100-40=60 n=100
18
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
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
2 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2 cin 输入流
键盘输入称为标准输入(standard input) 显示器输出称为标准输出(standard output) C++中通过输入/输出流来实现标准输出/输出操作。 输入操作通过流cin来实现 输出操作通过流cout来实现 使用输入流 cin ,必须在程序的第一行包含头文件。 即:#include <iostream.h>
4 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2 cin 输入流
每行末尾输入回车键的作用是: 1.告诉cin一行数据已经输入完毕,cin开始提取用户 输入的数据(忽略分隔符),并依次将所提取的数 据赋值给cin中所列举的变量中尚未获得数据的变量。 2.在屏幕上显示光标换行,为下一行的输入或者显示 程序的输出结果做好准备,起到输入数据之间以及 输入数据与输出结果之间的分隔符的作用。 用户输入数据的个数小于变量的个数。则在提取 完输入行的有效数据后仍有变量没有获得数值,当 前的输入语句不会结束,会继续等待用户输入新的 一行数据。
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.3 cout 输出流
为了区分输出的数据项,在每一个输出数据之间要输出分隔符。 分隔符可以是空格、标点符号或者换行符等。 例如:cout << a << ',' << b<< endl;
cout << c << ',' << n-d << endl; cout << m << ',' << n << endl;
11 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2.2 输入字符数据 例: char c1 , c2 , c3 ; cin >> c1 >> c2 >> c3;
运行时: 输入:a ⎣⎦ b ⎣⎦ c <回车> 或输入:abc <回车> 则 变量 c1、c2、c3 的值为 'a' 、'b' 、'c' cin 自动跳过输入的空格
输出结果:12, 34, 7, 8
15 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
借助函数cin.get( )可以将三种分隔符作为字符 输入计算机。 函数cin.get( )的作用是把从键盘上输入的每一 个字符,包括空格符和回车符等分隔符都作为一个输 入字符赋给字符型变量。其格式为: cin.get( <字符型变量> ); 例如:char c5, c6, c7, c8; cin.get(c5); cin.get(c6); cin.get(c7); cin.get(c8); 如果用户输入:A B <Enter>. c5值为‘A’,c6值为<空格>, c7值为‘B’,c8值为<回车>
8 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2.1 输入十六进制或者Leabharlann Baidu进制数据
必须在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; 9 }
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2.1 输入十六进制或者八进制数据
使用非十进制输入数据时,要注意几点: 1.八进制或十六进制数的输入,只适用于整型变量, 不适用于字符型变量、实型变量。 2.当在cin中指明使用的输入数制后,则所指明的数 制一直有效,直到在下一个cin语句中指明采用不同 的输入数制时为止。 3.用户从键盘输入数据的格式、个数和类型必须与 cin中所列举的变量类型一一对应。一旦输入出错, 不仅使当前的输入数据不正确,而且使得后面的提 取数据也不正确。
3 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2 cin 输入流
cin一般格式: cin >> <变量1> [ >> <变量2>... >> <变量n> ] “>>”称为提取运算符,表示程序暂停执行,等待 从输入流中提取数据赋给变量 将cin想象成键盘,“>>”想象成数据流向箭头,可 以很容易记忆输入操作
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
16
3.3 cout 输出流
cout一般格式:
cout << <表达式1> [ << <表达式2>... << <表达式n> ]
“<<”称为插入运算符,表示将表达式的运算结果 插入到输出流的末尾,即在显示器上显示。 将cout想象成显示器,“<<”想象成数据流向箭 头,可以很容易记忆输出操作 注意: 运行结果: 1020 例3.6:int a=10, b=20,♦输出数据之间无空白。 c=30, d=40; 3060 double m=5.23, n=100; ♦ endl 与 ‘\n’ 等价。 5.23100 cout << a << b << endl; cout << c << ♦ 输出实型数,小数点后若 n-d << endl; 为0,则不输出小数点。 cout << m << n << endl; 17
6 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2 cin 输入流
输入数据的类型由cin根据变量的类型来自动判定。 从键盘上输入数据的个数、类型及顺序,必须与cin 中列举的变量一一对应。 例如: int a, b; cin >> a >> b; 执行cin时,若输入字符数据: D F <Enter> 由于用户输入的数据是字符类型,而对应的接收 变量是整数类型,两者类型不匹配,变量a得不到有 效值,其值为0。后续的变量b受影响无法继续获得 数值,其值为一个随机数。错误会继续向后延伸, 7 造成后续的cin语句也不能正确提取数据。
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2 cin 输入流
例如:
int a; float b; cin >> b >> a;
执行cin时,若输入:300 1.234 <Enter>. 实型b变量获得300.0的数值。而整型变量a同样进 行数据类型转换,将小数1.234转换为整数1,小数 部分被丢弃。
1 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
第3章 简单的输入/输出
3.1 传统的输入/输出函数实现方法
输入:从键盘输入数据赋给变量 输出:指计算机把计算结果送到显示器上显示 应用程序可以包含零个或多个输入 应用程序至少包含一个或多个输出 传统程序使用I/O函数实现输入/输出操作 C++程序使用操作符重载方法实现输入/输出流技术 C++中输入/输出实现更加简单方便
输出结果:10, 20
30, 60 5.23, 100
例如:
'\t'的意义
cout <<"a=" << a << '\t' <<"b=" << b << endl; cout <<"c=" << c << '\t' << n << "-" << d <<"=" << n-d << endl; cout <<"m=" << m << '\t' <<"n="<< n << endl;
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2.1 输入十六进制或者八进制数据
必须在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; //输入仍旧是八进制数 输入:20 21 22 23 <Enter> cin >> dec >> d; //指明输入为十进制数 a=32, b=17, c=18, d=23 cout << a <<','<< b <<','<< c <<','<< d << endl; 10 }
⎣⎦
则 变量 c1、c2、c3 的值为 'a' 、'
<回车>
' 、'b'
13 则 变量 c1、c2、c3 的值为 'a' 、'b' 、'c' 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
例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。 14 剩余的‘7’字符和‘8’字符将被舍弃。
运行时: 例:int i , j ; float x , y ; 输入:1 ⎣⎦ 2 <回车> cin >> i >> j ; 3.2 ⎣⎦ 4.5 <回车> cin >> x >> y ; 则 变量 i、j 的值为 1、2 变量 x、y 的值 3.2 和 4.5 输入的数据之间用分隔符分隔:<空格>、<回车>、 <Tab键>
12 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
欲将空格输入给变量,则应使用 cin.get( ) 函数。 例: char c1 , c2 , c3 ; cin.get(c1); cin.get(c2); cin.get(c3); 运行时: 输入:a ⎣⎦ b 输入:abc
⎣⎦
c
<回车>
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
还可以使用cin.ignore( )函数对输入的内容有选 择的接收。cin.ignore( )的作用是在字符读取过程 中忽略若干个字符,而读取后面的字符。其格式为: cin.ignore( <忽略的字符个数> ); 例如: cin >> a >> b; cin.ignore(3); cin >> c >> d; 输入:12 34 5678 <Enter>
5 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2 cin 输入流
用户输入的数据个数大于变量的个数。则输入语 句只依次提取输入行中的部分数值给变量。而多余 的数值会被下一条cin输入语句中的变量所提取,或 者在没有后续的输入语句的情况下被程序舍弃。 int i , j ; cin >> i >> j ; 若输入:100 200 300<Enter>,300将被程序舍 弃。 如果用户输入的一行仅仅是一个回车键,则cin把 该键作为分隔符来处理(将其忽略),只是在屏幕 上显示光标换行,程序会继续等待用户输入数据。
输出结果:a=10
⎣⎦ ⎣⎦ ⎣⎦ ⎣⎦
⎣⎦ ⎣⎦ ⎣⎦ ⎣⎦ ⎣⎦ ⎣⎦
c=30 m=5.23
b=20 100-40=60 n=100
18
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
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
2 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2 cin 输入流
键盘输入称为标准输入(standard input) 显示器输出称为标准输出(standard output) C++中通过输入/输出流来实现标准输出/输出操作。 输入操作通过流cin来实现 输出操作通过流cout来实现 使用输入流 cin ,必须在程序的第一行包含头文件。 即:#include <iostream.h>
4 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2 cin 输入流
每行末尾输入回车键的作用是: 1.告诉cin一行数据已经输入完毕,cin开始提取用户 输入的数据(忽略分隔符),并依次将所提取的数 据赋值给cin中所列举的变量中尚未获得数据的变量。 2.在屏幕上显示光标换行,为下一行的输入或者显示 程序的输出结果做好准备,起到输入数据之间以及 输入数据与输出结果之间的分隔符的作用。 用户输入数据的个数小于变量的个数。则在提取 完输入行的有效数据后仍有变量没有获得数值,当 前的输入语句不会结束,会继续等待用户输入新的 一行数据。
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.3 cout 输出流
为了区分输出的数据项,在每一个输出数据之间要输出分隔符。 分隔符可以是空格、标点符号或者换行符等。 例如:cout << a << ',' << b<< endl;
cout << c << ',' << n-d << endl; cout << m << ',' << n << endl;
11 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2.2 输入字符数据 例: char c1 , c2 , c3 ; cin >> c1 >> c2 >> c3;
运行时: 输入:a ⎣⎦ b ⎣⎦ c <回车> 或输入:abc <回车> 则 变量 c1、c2、c3 的值为 'a' 、'b' 、'c' cin 自动跳过输入的空格
输出结果:12, 34, 7, 8
15 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
借助函数cin.get( )可以将三种分隔符作为字符 输入计算机。 函数cin.get( )的作用是把从键盘上输入的每一 个字符,包括空格符和回车符等分隔符都作为一个输 入字符赋给字符型变量。其格式为: cin.get( <字符型变量> ); 例如:char c5, c6, c7, c8; cin.get(c5); cin.get(c6); cin.get(c7); cin.get(c8); 如果用户输入:A B <Enter>. c5值为‘A’,c6值为<空格>, c7值为‘B’,c8值为<回车>
8 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2.1 输入十六进制或者Leabharlann Baidu进制数据
必须在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; 9 }
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2.1 输入十六进制或者八进制数据
使用非十进制输入数据时,要注意几点: 1.八进制或十六进制数的输入,只适用于整型变量, 不适用于字符型变量、实型变量。 2.当在cin中指明使用的输入数制后,则所指明的数 制一直有效,直到在下一个cin语句中指明采用不同 的输入数制时为止。 3.用户从键盘输入数据的格式、个数和类型必须与 cin中所列举的变量类型一一对应。一旦输入出错, 不仅使当前的输入数据不正确,而且使得后面的提 取数据也不正确。
3 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2 cin 输入流
cin一般格式: cin >> <变量1> [ >> <变量2>... >> <变量n> ] “>>”称为提取运算符,表示程序暂停执行,等待 从输入流中提取数据赋给变量 将cin想象成键盘,“>>”想象成数据流向箭头,可 以很容易记忆输入操作
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
16
3.3 cout 输出流
cout一般格式:
cout << <表达式1> [ << <表达式2>... << <表达式n> ]
“<<”称为插入运算符,表示将表达式的运算结果 插入到输出流的末尾,即在显示器上显示。 将cout想象成显示器,“<<”想象成数据流向箭 头,可以很容易记忆输出操作 注意: 运行结果: 1020 例3.6:int a=10, b=20,♦输出数据之间无空白。 c=30, d=40; 3060 double m=5.23, n=100; ♦ endl 与 ‘\n’ 等价。 5.23100 cout << a << b << endl; cout << c << ♦ 输出实型数,小数点后若 n-d << endl; 为0,则不输出小数点。 cout << m << n << endl; 17
6 南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2 cin 输入流
输入数据的类型由cin根据变量的类型来自动判定。 从键盘上输入数据的个数、类型及顺序,必须与cin 中列举的变量一一对应。 例如: int a, b; cin >> a >> b; 执行cin时,若输入字符数据: D F <Enter> 由于用户输入的数据是字符类型,而对应的接收 变量是整数类型,两者类型不匹配,变量a得不到有 效值,其值为0。后续的变量b受影响无法继续获得 数值,其值为一个随机数。错误会继续向后延伸, 7 造成后续的cin语句也不能正确提取数据。
南京航空航天大学信息学院计算机基础教研室 制作(版权所有)
3.2 cin 输入流
例如:
int a; float b; cin >> b >> a;
执行cin时,若输入:300 1.234 <Enter>. 实型b变量获得300.0的数值。而整型变量a同样进 行数据类型转换,将小数1.234转换为整数1,小数 部分被丢弃。