std::left, std::right, std::internal

来自cppreference.com
< cpp‎ | io‎ | manip
 
 
 
输入/输出操纵符
浮点格式化
整数格式化
布尔格式化
域宽与填充控制
internalleftright
其他格式化
空白符处理
输出冲入
状态标志操纵
时间与金钱 I/O
(C++11)
(C++11)
(C++11)
(C++11)
带引号操纵符
(C++14)
 
在标头 <ios> 定义
(1)
(2)
std::ios_base& internal( std::ios_base& str );
(3)

修改填充字符的默认定位。 leftright 应用到任何输出,而 internal 应用到整数、浮点和货币输出。在输入时无效果。

1) 如同用调用 str.setf(std::ios_base::left, std::ios_base::adjustfield) ,设置流 stradjustfieldleft

2) 如同用调用 str.setf(std::ios_base::right, std::ios_base::adjustfield) ,设置流 stradjustfieldright

3) 如同用调用 str.setf(std::ios_base::internal, std::ios_base::adjustfield) ,设置流 stradjustfieldinternal

这是一个 I/O 操纵符,可用如 out << std::left 的表达式对任何 std::basic_ostream 类型的 out 或用如 in >> std::left 的表达式对任何 std::basic_istream 类型的 in 调用。

参数

str - 到 I/O 流的引用

返回值

str (到操纵后的流的引用)

示例

#include <iostream>
#include <iomanip>
#include <locale>
 
int main()
{
    std::cout.imbue(std::locale("en_US.utf8"));
    std::cout << "Left fill:\n" << std::left << std::setfill('*')
              << std::setw(12) << -1.23  << '\n'
              << std::setw(12) << std::hex << std::showbase << 42 << '\n'
              << std::setw(12) << std::put_money(123, true) << "\n\n";
 
    std::cout << "Internal fill:\n" << std::internal
              << std::setw(12) << -1.23  << '\n'
              << std::setw(12) << 42 << '\n'
              << std::setw(12) << std::put_money(123, true) << "\n\n";
 
    std::cout << "Right fill:\n" << std::right
              << std::setw(12) << -1.23  << '\n'
              << std::setw(12) << 42 << '\n'
              << std::setw(12) << std::put_money(123, true) << '\n';
}

输出:

Left fill:
-1.23*******
0x2a********
USD *1.23***
 
Internal fill:
-*******1.23
0x********2a
USD ****1.23
 
Right fill:
*******-1.23
********0x2a
***USD *1.23

参阅

更改下个输入/输出域的宽度
(函数)
更改填充字符
(函数模板)