C++格式化输出

在C++中,咱们经常使用到的一些关于流操纵算子,来对咱们程序中的输出结果进行格式化的输出。ios

流操纵算子 做  用
*dec 以十进制形式输出整数 经常使用
hex 以十六进制形式输出整数
oct 以八进制形式输出整数
fixed 以普通小数形式输出浮点数
scientific 以科学计数法形式输出浮点数
left 左对齐,即在宽度不足时将填充字符添加到右边
*right 右对齐,即在宽度不足时将填充字符添加到左边
setbase(b) 设置输出整数时的进制,b=八、10 或 16
setw(w) 指定输出宽度为 w 个字符,或输人字符串时读入 w 个字符
setfill(c) 在指定输出宽度的状况下,输出的宽度不足时用字符 c 填充(默认状况是用空格填充)
setprecision(n) 设置输出浮点数的精度为 n。

在使用非 fixed 且非 scientific 方式输出的状况下,n 即为有效数字最多的位数,若是有效数字位数超过 n,则小数部分四舍五人,或自动变为科学计 数法输出并保留一共 n 位有效数字.

在使用 fixed 方式和 scientific 方式输出的状况下,n 是小数点后面应保留的位数
setiosflags (标志) 将某个输出格式标志置为 1
resetiosflags(标志) 将某个输出格式标志置为 0

 

程序以下:spa

#include <iostream> #include <iomanip>
using namespace std; int main() { int n = 141; //1) 分别以十六进制、十进制、八进制前后输出 n
    cout << "1)" << hex << n << " " << dec << n << " " << oct << n << endl; double x = 1234567.89, y = 12.34567; //2)保留5位有效数字
    cout << "2)" << setprecision(5) << x << " " << y << " " << endl; //3)保留小数点后面5位
    cout << "3)" << fixed << setprecision(5) << x << " " << y << endl; //4)科学计数法输出,且保留小数点后面5位
    cout << "4)" << scientific << setprecision(5) << x << " " << y << endl; //5)非负数显示正号,输出宽度为12字符,宽度不足则用 * 填补
    cout << "5)" << showpos << fixed << setw(12) << setfill('*') << 12.1 << endl; //6)非负数不显示正号,输出宽度为12字符,宽度不足则右边用填充字符填充
    cout << "6)" << noshowpos << setw(12) << left << 12.1 << endl; //7)输出宽度为 12 字符,宽度不足则左边用填充字符填充
    cout << "7)" << setw(12) << right << 12.1 << endl; //8)宽度不足时,负号和数值分列左右,中间用填充字符填充
    cout << "8)" << setw(12) << internal << -12.1 << endl; cout << "9)" << 12.1 << endl; return 0; }

 

运行结果:code

相关文章
相关标签/搜索