使用控制符控制输出格式 #include <iomanip>

iomanip这个头文件中,io代表输入输出,manip是manipulator(操纵器)的缩写(在c++上只能通过输入缩写才有效。)

下面是一些常用的控制字符:

一、输出八进制,十六进制和十进制数

#include <iostream>
#include <iomanip>
using namespace std;
void  main( )
{
      int  number=1001;
      cout << “Decimal:” <<dec<<number<<endl
      <<“Hexadecimal:”<<hex<<number<<endl
      <<“Octal:”<<oct<<number<<endl
      <<“Hexadecimal:”<<hex
      <<setiosflags(ios::uppercase)
      <<number<<endl;
}

输出结果:

Decimal:1001
Hexadecimal:3e9
Octal:1751
Hexadecimal:3E9

二、设置输出宽度

cout << setw(8) << 10 <<endl;
输出结果是:_ _ _ _ _ _10

若数值10和20均按照宽度8输出,则
cout << setw(8) << 10 << setw(8) << 20 << endl;
输出结果是:_ _ _ _ _ _ 10_ _ _ _ _ _20

如果一个值的位数大于setw(n)确定的宽度位数,则按原宽度输出 。

     float    amount = 4.53671;
     count  << setw(4) <<amount <<endl;

输出结果是:4.53671

三、用字符填充输出宽度

#include <iostream>
#include <iomanip>
Using namespace std;
void  main( )
{
      cout<<setfill(‘*’)
      <<setw(2)<<25<<endl
      <<setw(3)<<25<<endl
      <<setw(4)<<25<<endl;
      cout<<setfill(‘ ’);               //恢复缺省设置
}

输出结果:

25    
*25  
**25

四、控制左右对齐输出

缺省时,I/O流以右对齐格式显示

#include <iostream>
#include <iomanip>
Using namespace std;
void  main( )
{
	cout<<setiosflags(ios::right)<<setw(5)<<1<<setw(5)<<2
	<<setw(5)<<3<<endl;
	cout<<setiosflags(ios::left)<<setw(5)<<1<<setw(5)<<2
	<<setw(5)<<3<<endl;
}

输出结果为:
_ _ _ _ 1_ _ _ _ 2_ _ _ _ 3
1_ _ _ 2 _ _ _ 3 _ _ _ _

原文地址:https://www.cnblogs.com/NIT-yale/p/13842291.html