详细讲解C++中的 iomanip
作者:野牛程序员:2023-02-21 22:21:59信息竞赛阅读 3675
在 C++ 中,iomanip
是一个标准库,提供了一系列操作符和函数,用于格式化输入和输出。它包含了许多流操作符和修饰符,可以用来控制输出流的格式、精度、宽度等。以下是一些常用的 iomanip
操作符和函数:
控制输出流的格式
setw
setw
是一个输出流操作符,用于设置输出宽度。例如,下面的代码将输出一个宽度为 10 个字符的字符串 "hello":
#include <iostream> #include <iomanip> int main() { std::cout << std::setw(10) << "hello" << std::endl; return 0; }
如果输出的字符串长度小于指定的宽度,那么输出的结果会在左侧补充空格,使得输出宽度达到指定值。
setfill
setfill
是一个输出流操作符,用于设置填充字符。例如,下面的代码将输出一个宽度为 10 个字符的字符串,其中左侧使用字符 '0' 进行填充:
#include <iostream> #include <iomanip> int main() { std::cout << std::setw(10) << std::setfill('0') << 42 << std::endl; return 0; }
left, right, internal
left
, right
, internal
是三个输出流修饰符,用于控制输出对齐方式。left
表示左对齐,right
表示右对齐,internal
表示内部对齐。例如,下面的代码将输出一个宽度为 10 个字符的字符串,其中数值右对齐,数值与单位之间使用字符 '-' 进行填充,单位左对齐:
#include <iostream> #include <iomanip> int main() { std::cout << std::setw(10) << std::right << 42 << std::internal << "-" << std::left << "m" << std::endl; return 0; }
控制输出流的精度和格式
setprecision
setprecision
是一个输出流修饰符,用于设置输出浮点数的精度。例如,下面的代码将输出一个精度为 3 位的浮点数:
#include <iostream> #include <iomanip> int main() { double pi = 3.14159265358979323846; std::cout << std::setprecision(3) << pi << std::endl; return 0; }
fixed, scientific
fixed
, scientific
是两个输出流修饰符,用于控制浮点数的输出格式。fixed
表示使用定点表示法,scientific
表示使用科学计数法。例如,下面的代码将输出一个定点表示法的浮
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892