什么是C ++操纵器(endl,setw,setprecision,setf)?
流操纵器是专门设计用于与流对象上的插入(<<)和提取(>>)运算符结合使用的功能,例如-
std::cout << std::setw(10);
它们仍然是常规函数,也可以使用流对象作为参数来调用为任何其他函数,例如-
boolalpha (cout);
操纵器用于更改流上的格式设置参数以及插入或提取某些特殊字符。
以下是一些使用最广泛的C++操纵器-
Endl
该操纵器具有与'\n'(换行符)相同的功能。但这也会刷新输出流。
示例
#include<iostream> int main() { std::cout << "Hello" << std::endl << "World!"; }
输出结果
Hello World!
显示点/不显示点
该操纵器控制小数点是否始终包含在浮点表示中。
示例
#include <iostream> int main() { std::cout << "1.0 with showpoint: " << std::showpoint << 1.0 << '\n' << "1.0 with noshowpoint: " << std::noshowpoint << 1.0 << '\n'; }
输出结果
1.0 with showpoint: 1.00000 1.0 with noshowpoint: 1
设定精度
该操纵器更改浮点精度。在表达式out<<setprecision(n)或in>>setprecision(n)中使用时,将流的precision参数精确设置为out或n。
示例
#include <iostream> #include <iomanip> int main() { const long double pi = 3.141592653589793239; std::cout << "default precision (6): " << pi << '\n' << "std::setprecision(10): " << std::setprecision(10) << pi << '\n'; }
输出结果
default precision (6): 3.14159 std::setprecision(10): 3.141592654
塞特
该操纵器更改下一个输入/输出字段的宽度。在表达式out<<setw(n)或in>>setw(n)中使用时,将流out或in的宽度参数精确设置为n。
示例
#include <iostream> #include <iomanip> int main() { std::cout << "没有setw:" << 42 << '\n' << "setw(6):" << std::setw(6) << 42 << '\n' << "setw(6), several elements: " << 89 << std::setw(6) << 12 << 34 << '\n'; }
输出结果
没有setw:42 setw(6): 42 setw(6), several elements: 89 1234