C++输出格式控制

C++输出格式控制

在输出数据时,为简便起见,往往不指定输出的格式,由系统根据数据的类型采取默认的格式,但有时希望数据按指定的格式输出,如要求以十六进制或八进制形式输出一个整数,对输出的小数只保留两位小数等。有两种方法可以达到此目的:

  • 使用控制符
  • 使用流对象的有关成员函数

使用控制符控制输出格式

C++提供了在输入输出流中使用的控制符(有的书中称为操纵符)。如下表:

C++输出格式控制_第1张图片
输入输出流的控制符

需要注意的是: 如果使用了控制符,在程序单位的开头除了要加iostream头文件外,还要加iomanip头文件。
例子如下:

#include 
#include //不要忘记包含此头文件
using namespace std;
int main()
{
   int a;
   cout<<"input a:";
   cin>>a;
   cout<<"dec:"< 
  
C++输出格式控制_第2张图片
用于控制输出格式的流成员函数

流成员函数setf和控制符setiosflags括号中的参数表示格式状态,它是通过格式标志来指定的。格式标志在类ios中被定义为枚举值。因此在引用这些格式标志时要在前面加上类名ios和域运算符“::”。格式标志见下表:

C++输出格式控制_第3张图片
设置格式状态的格式标志

例子如下:

#include 
using namespace std;
int main( )
{
   int a=21;
   cout.setf(ios::showbase);      //显示基数符号(0x或)
   cout<<"dec:"<
  • 对输出格式的控制,既可以用控制符,也可以用cout流的有关成员函数,二者的作用是相同的。控制符是在头文件iomanip中定义的,因此用控制符时,必须包含iomanip头文件。cout流的成员函数是在头文件iostream 中定义的,因此只需包含头文件iostream,不必包含iomanip。许多程序人员感到使用控制符方便简单,可以在一个cout输出语句中连续使用多种控制符。

参考资料:C++格式化输出,C++输出格式控制

你可能感兴趣的:(C++输出格式控制)