您的位置:首页 > 编程语言 > C语言/C++

c++头文件iomanip.h中的setw、setprecision、setfill和setbase函数的使用

2017-09-22 20:08 495 查看
#include <iostream>   //不要用iostream.h ,会出现好多问题

   ▲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

   (空格)(空格) ff

   ▲ setprecision用法

   使用setprecision(n)可控制输出流显示浮点数的数字个数。C++默认的流输出数值有效位是6。

   如果setprecision(n)与setiosflags(ios::fixed)合用,可以控制小数点右边的数字个数。setiosflags(ios::fixed)是用定点方式表示实数。

   如果与setiosnags(ios::scientific)合用, 可以控制指数表示法的小数位数。setiosflags(ios::scientific)是用指数方式表示实数。

   例如,下面的代码分别用浮点、定点和指数方式表示一个实数:

   运行结果为:

   3.14286

   3

   3

   3.1

   3.14

   3.143

   3.14285714

   3.14285714e+00
   该程序在32位机器上运行通过。

   在用浮点表示的输出中,setprecision(n)表示有效位数。

   第1行输出数值之前没有设置有效位数,所以用流的有效位数默认设置值6:第2个输出设置了有效位数0,C++最小的有效位数为1,所以作为有效位数设置为1来看待:第3~6行输出按设置的有效位数输出。

   在用定点表示的输出中,setprecision(n)表示小数位数。

   第7行输出是与setiosflags(ios::fixed)合用。所以setprecision(8)设置的是小数点后面的位数,而非全部数字个数。

   在用指数形式输出时,setprecision(n)表示小数位数。

   第8行输出用setiosflags(ios::scientific)来表示指数表示的输出形式。其有效位数沿用上次的设置值8。
   setw(n)是设置域宽。

   就是你的输出要占多少个字符。

   比如:

   cout<<setw(5)<<12345<<endl;

   就输出:

   12345

   cout<<setw(6)<<12345<<endl;

   输出:

   12345

   而如果你要输出的字符宽度超出了setw(n)的n值,就按输出字符的宽度输出。

   如你的cout<<setw(4)<<12.3456<<endl;

   就输出12.3456
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: