用流函数进行格式化输出
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 <iostream> #include<fstream> #include<cstdlib> 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