C++使用流操纵算子格式化输出
发布时间:2023-06-14 13:25:26 所属栏目:语言 来源:
导读:罗列了 <iomanip> 头文件中定义的一些常用的格式控制符,它们都可用于格式化输出。
C++ 流操纵算子
流操纵算子 作 用
*dec 以十进制形式输出整数 常用
hex 以十六进制形式输出整数
oct 以八进
C++ 流操纵算子
流操纵算子 作 用
*dec 以十进制形式输出整数 常用
hex 以十六进制形式输出整数
oct 以八进
罗列了 <iomanip> 头文件中定义的一些常用的格式控制符,它们都可用于格式化输出。 C++ 流操纵算子 流操纵算子 作 用 *dec 以十进制形式输出整数 常用 hex 以十六进制形式输出整数 oct 以八进制形式输出整数 fixed 以普通小数形式输出浮点数 scientific 以科学计数法形式输出浮点数 left 左对齐,即在宽度不足时将填充字符添加到右边 *right 右对齐,即在宽度不足时将填充字符添加到左边 setbase(b) 设置输出整数时的进制,b=8、10 或 16 setw(w) 指定输出宽度为 w 个字符,或输入字符串时读入 w 个字符。注意,该函数所起的作用是一次性的,即只影响下一次 cout 输出。 setfill(c) 在指定输出宽度的情况下,输出的宽度不足时用字符 c 填充(默认情况是用空格填充) setprecision(n) 设置输出浮点数的精度为 n。 在使用非 fixed 且非 scientific 方式输出的情况下,n 即为有效数字最多的位数,如果有效数字位数超过 n,则小数部分四舍五人,或自动变为科学计 数法输出并保留一共 n 位有效数字。 在使用 fixed 方式和 scientific 方式输出的情况下,n 是小数点后面应保留的位数。 setiosflags(mask) 在当前格式状态下,追加 mask 格式,mask 参数可选择表 2 中的所有值。 resetiosflags(mask) 在当前格式状态下,删除 mask 格式,mask 参数可选择表 2 中的所有值。 boolapha 把 true 和 false 输出为字符串 不常用 *noboolalpha 把 true 和 false 输出为 0、1 showbase 输出表示数值的进制的前缀 *noshowbase 不输出表示数值的进制.的前缀 showpoint 总是输出小数点 *noshowpoint 只有当小数部分存在时才显示小数点 showpos 在非负数值中显示 + *noshowpos 在非负数值中不显示 + uppercase 十六进制数中使用 A~E。若输出前缀,则前缀输出 0X,科学计数法中输出 E *nouppercase 十六进制数中使用 a~e。若输出前缀,则前缀输出 0x,科学计数法中输出 e。 internal 数值的符号(正负号)在指定宽度内左对齐,数值右对 齐,中间由填充字符填充。 注意:“流操纵算子”一栏带有星号 * 的格式控制符,默认情况下就会使用。例如在默认情况下,整数是用十进制形式输出的,等效于使用了 dec 格式控制符。 和 cout 成员方法的用法不同,下面程序演示了表 3 中这些格式控制符的用法: #include <iostream> #include <iomanip> using namespace std; int main() { //以十六进制输出整数 cout << hex << 16 << endl; //删除之前设定的进制格式,以默认的 10 进制输出整数 cout << resetiosflags(ios::basefield)<< 16 << endl; double a = 123; //以科学计数法的方式输出浮点数 cout << scientific << a << endl; //删除之前设定的科学计数法的方法 cout << resetiosflags(ios::scientific) << a << endl; return 0; } 程序执行结果为: 10 16 1.230000e+02 123 注意,如果两个相互矛盾的标志同时被设置,如先设置 setiosflags(ios::fixed),然后又设置 setiosflags(ios::scientific),那么结果可能就是两个标志都不起作用。因此,在设置了某标志,又要设置其他与之矛盾的标志时,就应该用 resetiosflags 清除原先的标志。 (编辑:汽车网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |