1.cout输出
cout在iostream头文件中定义,可以控制标准输出流stdout的输出,它有以下两个功能
1.1 如果cout后面跟的是双引号括起来的内容,就按照原样输出
cout << "Hello world";
// 输出结果为:Hello world
1.2如果cout后面是数学表达式,就输出表达式的结果
cout << 1+2*3;
// 输出结果为:7
1.3 浮点数保留n位小数的输出
/*
fixed和setprecision的头文件
double默认保留6位有效数字,如果小数点前面有7位及以上数字,就会用科学计数法输出
使用cout<<fixed<<变量;可以让输出不用科学计数法
使用cout<<fixed<<setprecision(2)<<变量;可以保留小数点后2位小数
setprecision默认使用四舍五入的方法保留小数
*/
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
double pi=1234567.1415926;
cout<<pi<<endl;//结果为:1.23457e+006
cout<<fixed<<pi<<endl;//结果为:1234567.141593
cout<<fixed<<setprecision(3)<<pi; //结果为:1234567.142
return 0;
}
1.4 控制输出格式
setw(x)可以让输出数字宽度为x,默认情况下靠右
cout<<left<<setw(5)<<x; 可以变成靠左。
#include<iostream>
#include<iomanip>//setw的头文件
using namespace std;
int main(){
for(int i=1;i<=20;i++){
cout<<setw(5)<<i;
//cout<<left<<setw(5)<<i;
if(i%5==0){
cout<<endl;
}
}
return 0;
}
2.cin输入
cin在iostream头文件中定义,可以控制标准输出流stdin的输入
int n;
cin >> n;
int a,b,c;
cin >> a >> b >> c;
3.printf输出
printf是格式化输出函数,在cstdio头文件中
格式控制字符串可由格式字符串和非格式字符串两部分组成。
格式字符串是以"%"开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位等。如“%d”表示十进制整型输出,“%ld”表示按十进制长整型输出,“%c”表示按字符型输出,“%s”表示按字符串输出等。
非格式字符串按原样输出,在显示中起提示作用。
printf的语法如下
printf(格式字符串,表达式列表)
printf和cout对比
输出内容 | printf | cout |
输出int类型a | printf("%d",a) | cout << a |
输出long long类型a | printf("%ld,a) | cout << a |
输出float类型a | printf("%f",a) | cout << a |
输出double类型b | printf("%lf",a) | cout << a |
输出字符变量a | printf("%c",a) | cout << a |
输出字符串变量a[] | printf("%s",a) | cout << a |
输出一句话 | printf("Hello world") | cout<<"Hello world" |
输出换行 | printf("\n") | cout<<endl |
输出一个等式 | printf("%d+%d=%d",a,b) | cout<<a<<"+"<<b<<"="<<a+b |
注意:printf不能输出string类型变量。
3.1printf保留n位小数
#include<cstdio>
using namespace std;
int main(){
double pi=3.1415926;
printf("%.3lf",pi);
return 0;
}
3.2 printf控制数字输出宽度
#include<cstdio>
using namespace std;
int main(){
for(int i=1;i<=20;i++){
printf("%5d",i); // 默认靠右
// printf("%-5d",i) 靠右
if(i%5==0){
printf("\n");// \n代表换行
}
}
return 0;
}
4.scanf输入
scanf是格式化输入函数,在cstdio头文件中
scanf的语法如下
scanf(格式字符串,表达式列表)
scanf和cin对比
输出内容 | scanf | cin |
输出int类型a | scanf("%d",&a) | cin >> a |
输出long long类型a | scanf("%ld,&a) | cin >> a |
输出float类型a | scanf("%f",&a) | cin >> a |
输出double类型b | scanf("%lf",&a) | cin >> a |
输出字符变量a | scanf("%c",&a) | cin >> a |
输出字符串变量a[] | scanf("%s",&a) | cin >> a |
输入带空格字符串a[101] | scanf("%[^\n]",&a) | cin.getline(a,101) |
输入两个不同类型a,b | scanf("%d%lf",&a,&b) | cin >> a >> b |
注意:scanf不能用作string类型的输入