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

标准流的初始缺省值等价于 right

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

参数

str - 到 I/O 流的引用

返回值

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

示例

#include <iomanip>
#include <iostream>
#include <locale>
 
int main()
{
    std::cout.imbue(std::locale("en_US.utf8"));
 
    std::cout << "Default positioning:\n" << 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 << "Left positioning:\n" << std::left
              << std::setw(12) << -1.23  << '\n'
              << std::setw(12) << 42 << '\n'
              << std::setw(12) << std::put_money(123, true) << "\n\n";
 
    std::cout << "Internal positioning:\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 positioning:\n" << std::right
              << std::setw(12) << -1.23  << '\n'
              << std::setw(12) << 42 << '\n'
              << std::setw(12) << std::put_money(123, true) << '\n';
}

输出:

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

参阅

更改下个输入/输出字段的宽度
(函数)
更改填充字符
(函数模板)
控制是否使用前缀指示数值基数
(函数)