C++用流函数进行格式化输出


调试的时候,输出友好的话,可以有效的提高调试的效率,因此,在这里整理一下,一些格式化输出的常见方法。

1、setf

stef是set flags(设置标志)的缩写。编制(flags)是以二选一的方式来做一件事情的指令。

  1. ios::fixed 不用e计数法来表示浮点数

  2. ios::scientific 用e计数法来表示浮点数

  3. ios::showpos 始终以浮点数显示小数点和尾随的0。如果不设置此表示,而且一个数字在小数点后全是0,那么他在输出时可能既没有小数点,也没有尾随的0。

  4. ios::right 在使用成员函数width()来设置域宽值后,输出的时候会按照区域宽度来右对齐输出

  5. ios::left 在使用成员函数width()来设置域宽值后,输出的时候会按照区域宽度来左对齐输出

    例子:

#include "pch.h"
#include 
#include
#include
using namespace std;
int main()
{
    float a = 0.00;
    float b = 1234567.23;
    int c = 10;
    cout.width(50);     //设置输出域宽为50
    cout << "Peter is a hansome man" << endl;
    cout.setf(ios::showpoint);   //显示小数点后面位数
    cout << a << endl;
    cout.unsetf(ios::showpoint);//取消上一个格式化输出
    cout.setf(ios::scientific);//科学计数法输出浮点数
    cout << b << endl;
    cout.unsetf(ios::scientific);//取消上一个格式化输出
    cout.setf(ios::fixed);//直接输出浮点数
    cout << b << endl;
    cout.unsetf(ios::fixed);//取消上一个格式化输出
    cout.setf(ios::left);//靠左输出
    cout << b << "	"<< c << endl;
}

2、setw

操纵元函数setw()和width()类似:

cout<< “strat” << setw(4) << 10;

输出: 10;在10前面有两个空格,因为是4个域宽输出的。

3、setprecision

使用setprecision(n)可控制输出流显示浮点数的数字个数:

cout<< setprecision(2) << 10.4<< endl;

输出:10.30


文章作者: Luo Xiao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Luo Xiao !
  目录