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('*') 恢复填充字符为默认的空格。这种设置填充字符的方式在多次输出时很有用。

posted @   执~念  阅读(1212)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 对象命名为何需要避免'-er'和'-or'后缀
· JDK 24 发布,新特性解读!
· C# 中比较实用的关键字,基础高频面试题!
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· SQL Server如何跟踪自动统计信息更新?
点击右上角即可分享
微信分享提示