文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>c++头文件iomanip.h中 setw()、setprecision()、..

c++头文件iomanip.h中 setw()、setprecision()、..

时间:2010-08-11  来源:zhaodezhong

在网上和书上找了一些关于流操作的东西,整理了一下,有时间自己多看看

#include <iostream>

#include <iomanip>

 

using namespace std;

 

const double   d1 = 1.23456789;

const double   d2 = 12.3456789;

const double   d3 = 123.456789;

const double   d4 = 1234.56789;

const double   d5 = 12345.6789;

const long      l1 = 16;

const long      l2 = 256;

const long      l3 = 1024;

const long      l4 = 4096;

const long      l5 = 65536;

int         base = 10;

 

void DisplayDefault( )

{

   cout << endl << "default display" << endl;

   cout << "d1 = " << d1 << endl;

   cout << "d2 = " << d2 << endl;

   cout << "d3 = " << d3 << endl;

   cout << "d4 = " << d4 << endl;

   cout << "d5 = " << d5 << endl;

}

 

void DisplayWidth( int n )

{

   cout << endl << "fixed width display set to " << n << ".\n";

   cout << "d1 = " << setw(n) << d1 << endl;

   cout << "d2 = " << setw(n) << d2 << endl;

   cout << "d3 = " << setw(n) << d3 << endl;

   cout << "d4 = " << setw(n) << d4 << endl;

   cout << "d5 = " << setw(n) << d5 << endl;

}

 

void DisplayLongs( )

{

   cout << setbase(10);

   cout << endl << "setbase(" << base << ")" << endl;

   cout << setbase(base);

   cout << "l1 = " << l1 << endl;

   cout << "l2 = " << l2 << endl;

   cout << "l3 = " << l3 << endl;

   cout << "l4 = " << l4 << endl;

   cout << "l5 = " << l5 << endl;

}

 

int main( int argc, char* argv[] )

{

   //以默认格式输出,C++默认输出六位有效数据

   DisplayDefault( );

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

   cout << endl << "setprecision(" << 3 << ")" << setprecision(3);

   DisplayDefault( );

 

   cout << endl << "setprecision(" << 12 << ")" << setprecision(12);

   DisplayDefault( );

   //如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数

   //setiosflags(ios::fixed)是用定点方式表示实数

   //如果与setiosnags(ios::scientific)合用, 可以控制指数表示法的小数位数

   cout << setiosflags(ios_base::scientific);

   cout << endl << "setiosflags(" << ios_base::scientific << ")";

   DisplayDefault( );

 

   cout << resetiosflags(ios_base::scientific);

   cout << endl << "resetiosflags(" << ios_base::scientific << ")";

   DisplayDefault( );

 

   cout << endl << "setfill('" << 'S' << "')" << setfill('S');

   DisplayWidth(15);

   DisplayDefault( );

   //setw(n)用法: 通俗地讲就是预设宽度

   //setfill(char c) 用法 : 就是在预设宽度中如果已存在没用完的宽度大小,则用设置的字符c填充

   cout << endl << "setfill('" << ' ' << "')" << setfill(' ');

   DisplayWidth(15);

   DisplayDefault( );

   //setbase(int n) : 将数字转换为 n 进制

   cout << endl << "setprecision(" << 8 << ")" << setprecision(8);

   DisplayWidth(10);

   DisplayDefault( );

   //以十六进制输出

   base = 16;

   DisplayLongs( );

   //以八进制输出      

   base = 8;

   DisplayLongs( );

   //以十进制输出

   base = 10;

   DisplayLongs( );

 

   return   0;

}

 

 

**这些用法前最好用

#include <iostream>    //不要用iostream.h ,会出现好多问题

#include <iomanip> // io 流控制头文件, 主要是一些操纵用法如setw(int n),setprecision(int n)

                                //,setbase(int   n),setfill(char c)的.

▲setw(n)用法: 通俗地讲就是预设宽度

如 cout<<setw(5)<<255<<endl;

结果是:

(空格)(空格)255

▲setfill(char c) 用法 : 就是在预设宽度中如果已存在没用完的宽度大小,则用设置的字符c填充

如 cout<<setfill('@')<<setw(5)<<255<<endl;

结果是:

@@255

▲setbase(int n) : 将数字转换为 n 进制.

如 cout<<setbase(8)<<setw(5)<<255<<endl;

     cout<<setbase(10)<<setw(5)<<255<<endl;

    cout<<setbase(16)<<255<<endl;

结果是:

(空格)(空格)377

(空格)(空格) 255

(空格)(空格) f f

▲ setprecision用法

使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。
如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。setiosflags(ios::fixed)是用定点方式表示实数。
如果与setiosnags(ios::scientific)合用, 可以控制指数表示法的小数位数。setiosflags(ios::scientific)是用指数方式表示实数。

 

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载