2009-7-28 1
第 3章简单的输入 /输出
2009-7-28 2
C++的语句分类表达式语句,有返回值的语句,如,a==b;
声明语句,对变量、类、函数等声明,如,int a;
空语句,仅由分号组成,如,;
函数调用语句,用于调用函数,如,sin(x);
块语句,多个语句的组合,如:
{int a,b=1; a=b*2; cout<<a; }
控制语句,改变语句的执行次序,如:
if(a>b) max=a; else max=b;
说明语句,对结构、变量进行定义、描述的语句。
基 本 语 句什么是语句? 以分号为结束标志的句子。
2009-7-28 3
输入流 cin
输入 /输出流包含在头文件 iostream.h中,故在程序开始应有:
#include <iostream.h>
输入流的一般格式:
cin>> <变量名 1>,>> <变量名 2> >>…>> < 变量名 n>,
这里,>>”称为 提取运算符 。
例 1,int i,j;
float x,y;
cin>>i>>j;
cin>>x>>y;
此时输入 35<CR> 77<CR>3.1415<CR>100<CR>
与输入 35 77 3.1415 100<CR>
或输入 35 77<CR>3.1415 100<CR>结果一样。
2009-7-28 4
注,1.输入的数据既可用空格分隔,也可用回车符分隔。
2.当输入的数据的个数、类型与原来数据的个数、类型不符时,出错。
例 3,char c1,c2,c3,c4;
cin>>c1>>c2>>c3;
若输入 A b e<CR>或 Abe<CR>均分别将 A,b,e赋给
c1,c2,c3。
例 2,int a,b;
cin>>a>>b;
若输入 D F<CR>,则 a的值为 0,而 b没有值。
2009-7-28 5
例 3,char c5,c6,c7,c8;
cin.get(c5);
cin.get(c6);
cin.get(c7);
则输入 A B<CR>后,c5=A,c6=空格,c7=B。
注,空格及回车符不能作为字符输入。若需要要空格或回车符,必须用函数 cin.get( )。
格式为,cin.get(<字符型变量 >);
2009-7-28 6
输出流 cout
一般格式:
cout<< <表达式 1>,<< <表达式 2> <<…<< < 表达式 n>,;
例 4,cout<<“输入变量 i的值:”;
int i;
cin>>i;
输出结果为,输入变量 i的值:
例 5,char c=?a?,c1=?b?;
cout<<“c=”<<c<<?\t?<<“c1=”<<c1<<?\n?;
输出结果为,c=a c1=b
2009-7-28 7
例 6,int i=2,j=10,k=20,m=30;
float x=3.14,y=100;
cout<<i<<j<<end1; //end1等同于‘ \n?
cout<<m<<j*k<<end1;
cout<<x<<y<<end1;
输出结果为,210
30200
3.14100
该例的输出流可改为:
cout<<“i=”<<i<<?\t?<<“j=”<<j<<end1;
cout<<“m=”<<m<<?\t?<<j<<?*?<<k
<<“=”<<j*k<<end1;
cout<<“x=”<<x<<?\t?<<“y=”<<y<<end1;
则输出结果为,i=2 j=10
m=30 10*20=200
x=3.14 y=100
2009-7-28 8
输出流可用 setw( )函数确定输出项的宽度。
例 7,例 6的输出可改为:
cout<<setw(6)<<i<<setw(10)<<j<<end1;
cout<<setw(5)<<m<<setw(10)<<j*k<<end1;
cout<<setw(10)<<x<<setw(10)<<y<<end1;
此时输出结果为,2 10
30 200
3.14 100
注,1.使用 setw( )函数前应在开始含这样的语句
#include <iomanip.h>
2.函数 setw( )的参数表明输出宽度,应是值为正数的表达式。
3.setw( )只对一个输出项有效。
2009-7-28 9
八进制数、十六进制数及科学表示法实数的输出例 8,#include <iostream.h>
void main(void){
int i=2,j=10,k=20,m=30;
float x=3.14,y=100;
cout<<“i=”<<hex<<i<<?\t?<<“j=”<<j<<end1;
//hex表示以十六进制输出,直到下一行语句为止。
cout.setf(ios::scientific,ios::floatfield);
//设置用科学表示法输出
cout<<oct<<m<<?\t?<<j*k<<end1;
//oct表示用八进制输出 m,j*k
cout<<x<<?\t?;
cout<<y<<end1;
}
2009-7-28 10
输出结果,i=2 j=a
36 310
3.140000e+000 1.000000e+002
注,输出格式的设置的有效性直到重新设置输出格式为止。
如需要重新设置按定点数格式输出(缺省输出方式)用语句:
cout.setf(ios::fixed,ios::floatfield);
2009-7-28 11
课堂总结
输入流的一般格式:
cin>> <变量名 1>,>> <变量名 2> >>…>> < 变量名 n>,;
输出流的 一般格式:
cout<< <表达式 1>,<< <表达式 2> <<…<< < 表达式 n>,;