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