命名空间
变体
操作

std::setfill

来自 cppreference.com
< cpp‎ | io‎ | manip
 
 
 
输入/输出操纵器
浮点格式化
整数格式化
布尔格式化
字段宽度和填充控制
setfill
其他格式化
空白处理
输出刷新
(C++20)  

状态标志操作
时间和货币 I/O
(C++11)
(C++11)
(C++11)
(C++11)
引号操纵器
(C++14)
 
定义在头文件 <iomanip>
template< class CharT >
/*未指定*/ setfill( CharT c );

在表达式 out << setfill(c) 中使用时,会将流 out 的填充字符设置为 c.

内容

[编辑] 参数

c - 填充字符的新值

[编辑] 返回值

一个未指定类型对象,使得

  • 如果 out 是类型 std::basic_ostream<CharT, Traits> 的对象,则表达式 out << setfill(c)
    • 类型为 std::basic_ostream<CharT, Traits>&
    • 值为 out
    • 行为表现得好像调用了 f(out, c)

其中函数 f 定义如下

template<class CharT, class Traits>
void f(std::basic_ios<CharT, Traits>& str, CharT c)
{
    // set fill character
    str.fill(c);
}

[编辑] 说明

可以使用 std::ostream::fill 获取当前填充字符。

[编辑] 示例

#include <iomanip>
#include <iostream>
 
int main()
{
    std::cout << "default fill: [" << std::setw(10) << 42 << "]\n"
              << "setfill('*'): [" << std::setfill('*')
                                   << std::setw(10) << 42 << "]\n";
}

输出

default fill: [        42]
setfill('*'): [********42]

[编辑] 缺陷报告

以下行为变更缺陷报告已追溯应用于之前发布的 C++ 标准。

DR 应用于 已发布的行为 正确行为
LWG 183 C++98 setbase 只能与
类型为 std::ostream 的流一起使用
可与任何输出
字符流一起使用

[编辑] 参见

管理填充字符
(std::basic_ios<CharT,Traits> 的公有成员函数) [编辑]
设置填充字符的放置位置
(函数) [编辑]
更改下一个输入/输出字段的宽度
(函数) [编辑]