C++输入输出,设置精度setprecision、域宽setw、填充setfill
本文的三个函数均需要引入头文件:#include <iomanip>
设置输出精度 setprecision(int n)
参考:C语言中文网:c++ setprecision用法详解
// 写法1
cout << setprecision(10) << a << endl;
// 写法2:a、b、c都将以10位有效位输出
cout << setprecision(10);
cout << a << endl;
cout << b << endl;
cout << c << endl;
- setprecision设置的是有效位数,即出现在小数点前后的总位数。
- 默认情况下,系统使用6个有效位显示浮点值。
- 如果设置的有效位数小于原数的位数,setprecision将四舍五入,而不是截断数字。
- 如果设置的有效位数大于原数的位数,则setprecision不起作用,还是按照原数显示。
- 末尾的零将被省略。因此,尽管指定了 setprecision(5),但是 21.40 仍显示为 21.4。
- 与 setw 字段宽度不同的是,setprecision 的精度设置将保持有效,直到更改为其他值为止。
- 可以通过
cout.precision()
查看当前的输出精度。
设置域宽setw(int n)
- setw() 函数只对紧接着的输出产生作用。
- 当后面紧跟着的输出字段长度小于 n 的时候,在该字段前面用空格补齐,当输出字段长度大于 n 时,全部整体输出。
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
// 开头设置宽度为 4,后面的 runoob 字符长度大于 4,所以不起作用
cout << setw(4) << "runoob" << endl;
// 中间位置设置宽度为 4,后面的 runoob 字符长度大于 4,所以不起作用
cout << "runoob" << setw(4) << "runoob" << endl;
// 开头设置间距为 14,后面 runoob 字符数为6,前面补充 8 个空格
cout << setw(14) << "runoob" << endl;
// 中间位置设置间距为 14 ,后面 runoob 字符数为6,前面补充 8 个空格
cout << "runoob" << setw(14) << "runoob" << endl;
return 0;
}
运行结果:
设置填充
- setw() 默认填充的内容为空格,可以 setfill() 配合使用设置其他字符填充。
cout << setfill('*') << setw(14) << "runoob" << endl;
// 输出结果:********runoob
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构