C++中setw和setfill函数的结合应用
一、头文件
头文件为#include <iomanip>
其中io代表输入输出,manip是manipulator(操纵器)的缩写
iomanip的作用:
主要是对cin,cout之类的一些操纵运算子,比如setfill,setw,setbase,setprecision等等。它是I/O流控制头文件,就像C里面的格式化输出一样。
二、setw函数
setw
是 C++ 中 <iomanip>
头文件中定义的一个格式控制符。它用于设置输出流中下一个字段的宽度(即列的宽度)。具体而言,setw
允许你指定输出流中下一个字段(例如,一个整数或字符串)的最小宽度,如果该字段的实际宽度小于指定的宽度,则在左侧或右侧用填充字符进行填充。
代码示例如下
#include <iostream> #include <iomanip> using namespace std; int main() { int num = 10; cout<<setw(10)<<num<<endl; cout<<"0123456789"<<endl; return 0; }
在这个例子中,setw(10)
指定了下一个字段(num
)的宽度为 10,如果 num
的宽度小于 10,则在左侧用空格进行填充,使总宽度为 10。
三、setfill函数
setfill
是 C++ 中 <iomanip>
头文件中定义的另一个格式控制符,它用于设置填充字符。
当结合 setw
使用时,setfill
允许你指定用于填充字段的字符。默认情况下,填充字符是空格。
函数示例:
#include <iostream> #include <iomanip> using namespace std; int main() { int num = 10; cout<<setw(10)<<num<<endl; cout<<"0123456789"<<endl; cout<<setw(10)<<setfill('*')<<num<<endl; return 0; }
在这个例子中,setfill('*')
设置了填充字符为 ''. 如果 num
的宽度小于 10,则在左侧用 '*'
进行填充,使总宽度为 10。
你可以在 setw
和实际输出值之间使用 setfill
来指定填充字符。在上面的例子中,setfill('*')
只影响其后的一个 setw(10)
,而不是整个输出流。
setfill
还可以与其他输出流操纵符一起使用,以改变填充字符的范围。
#include <iostream> #include <iomanip> using namespace std; int main() { int num = 10; cout<<setw(10)<<num<<endl; cout<<"0123456789"<<endl; cout<<setw(10)<<setfill('*')<<num<<endl; cout<<setw(10)<<setfill('*')<<num<<setw(10)<<"test"<<setfill('*')<<endl; return 0; }
在这个例子中,std::setfill('*')
恢复填充字符为默认的空格。这种设置填充字符的方式在多次输出时很有用。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 对象命名为何需要避免'-er'和'-or'后缀
· JDK 24 发布,新特性解读!
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· SQL Server如何跟踪自动统计信息更新?