调试的时候,输出友好的话,可以有效的提高调试的效率,因此,在这里整理一下,一些格式化输出的常见方法。
1、setf
stef是set flags(设置标志)的缩写。编制(flags)是以二选一的方式来做一件事情的指令。
ios::fixed 不用e计数法来表示浮点数
ios::scientific 用e计数法来表示浮点数
ios::showpos 始终以浮点数显示小数点和尾随的0。如果不设置此表示,而且一个数字在小数点后全是0,那么他在输出时可能既没有小数点,也没有尾随的0。
ios::right 在使用成员函数width()来设置域宽值后,输出的时候会按照区域宽度来右对齐输出
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