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

[编辑]参阅

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