C++格式化输出

控制符 功能
endl 输出一个新行符,并清空流
left 输出数据在指定宽度内左对齐
right 输出数据在指定宽度内右对齐
fixed 按定点格式显示浮点数
setprecision(int n) 设置浮点数 输出精度
setfill(char c) 设置填充字符 c
setw(int n) 设置输出宽度

设置域宽:需要引入库 #include<iomanip>

cout<<"tuling"<<endl;
cout<<setw(10)<<"tuling"<<endl;
cout<<setfill('*')<<setw(10)<<"tuling"<<endl;
cout<<setfill('*')<<setw(2)<<"tuling"<<endl;
输出:
tuling
    tuling
****tuling
tuling

C语言风格格式化输出

当输入数据范围较大时,比如超过 100 万,cin 读取数据就会明显变慢导致超时,这时,就可以采用C语言风格进行输入输出。

格式化输入

语法: scanf(“格式控制字符符”,&变量名);

其中,&为取址符。我们输入某个数据到计算中存储时,我们首先要知道存储的地址,因此需要使用取址符&,将对应的变量地址找到,这样就可以直接把我们要存储的数据放在对应的变量地址中了。

就好比,你给朋友寄快递,首先要知道他的家庭地址一样,只要知道了他的地址信息后,你才能将快递送到他手上。

int a;
scanf("%d",&a);
printf("我今年%d岁了",a);
// 输入:10
// 运行结果:我今年10岁了

格式化输出

作用: 让内容按照自定义的格式输出

语法: printf(“格式控制字符串”,变量名);

格式控制字符串中的普通字符会保留,格式控制符会被后面对应的参数替代,构成字符串。

int age=10;
printf("我的名字叫:%s,今年%d岁了。\n","小明",age);

// 运行结果:我的名字叫:小明,今年10岁了。
// 其中“小明”插入了%s的格式符中,age=10插入了%d的格式符中。

注:换行符为 '\n'

常见类型格式符

控制小数位数

【注】: num为几,则保留几位小数。

printf("%5d\n",123);//表示输出内容不足5个字符,会在左侧部空格填充
printf("%.2f\n",0.5);//表示保留两位小数
输出
  123
0.50

总结

cin与scanf的选择

1.性能:scanf可能在某些情况下比cin快。

2.格式化输入:scanf允许你指定一个格式字符串,可以在需要严格控制输入格式时非常有用。如果题目的输入有特殊格式要求可以使用scanf。 例如:题目要求输入两个数据,这两个数据输入时用“,”分开。

int main(){
    int a,b;
    scanf("%d,%d",&a,&b);printf("%d %d",a,b);
    return 0;
}

cout与printf的选择

1.性能:printf可能在某些情况下比cout快。

2.复杂的格式化: printf 允许通过格式字符串指定复杂的输出格式,这有时比 cout 更方便,尤其是在需要精确控制数字的小数位数、填充和对齐时。 例如:保留两位小数。

printf("%.2lf",3.1415926);
cout << fixed << setprecision(2) << 3.1415926;//cout保留两位小数还需要添加<iomanip>头文件

练习

Copyright ©图灵之星 2024,转载需注明出处该文件修订时间: 2025-05-09 17:02:35

results matching ""

    No results matching ""