首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++中的格式设立区别

2012-12-21 
C++中的格式设置区别今天使用C++编程练习时遇到了一个小问题:包含头文件iomanip文件后,在标准输出流中使用

C++中的格式设置区别
今天使用C++编程练习时遇到了一个小问题:包含头文件iomanip文件后,在标准输出流中使用setprecision函数指定了输出数据的精度。没有预料到setprecision函数会影响到后面输出流的精度。

查阅了些C++的资料,下面总结一下C++设定输出格式的几种方式:

(1) 使用cout对象的width方法,如: cout.width(20);
(2) 使用<iomanip>里面的函数设置输出的行宽。

<iomanip>中总共有六个成员函数:
setw  //指定显示区域宽度 ---  不影响后续的输出流!
setprecision  //指定浮点数的精度  --- 影响后续的输出流!
setfill  //在右对齐方式显示时,设定填充的符号
setbase  //设置输出的基数,例如要输出八进制数时设置setbase(8)
setiosflags  //设定标志位
resetiosflags  //清除设定的标志位

其中,setiosflags和resetiosflags是一对函数,它们由于改变一些flag的值。

#include <iostream>#include <cstdlib>#include <iomanip>using namespace std;class Rectangle{      public :             Rectangle(float width,float hight);             double GetArea();             float GetWidth();             float GetHight();             ~Rectangle();      private :              float width;              float hight;      };Rectangle::Rectangle(float width,float hight){    this->width=width;    this->hight=hight;                      }Rectangle::~Rectangle(){    cout<<"Resource have been release!!"<<endl;     cout<<"width ----------->"<<this->GetWidth()<<endl;     //受到setprecision函数的影响                     cout<<"hight ----------->"<<this->GetHight()<<endl;     //受到setprecision函数的影响 }double Rectangle::GetArea(){    return this->width * this->hight;       }float Rectangle::GetWidth(){     return this->width;      }float Rectangle::GetHight(){     return this->hight;      }int main(int argc,char * args[]){    {        Rectangle rectangle(12.29,18.12);        cout<<"The width of the rectangle : "<<rectangle.GetWidth()<<endl;        cout<<"The hight of the rectangle : "<<rectangle.GetHight()<<endl;        cout<<"The Area of the rectangle :"<<setprecision(8)<<rectangle.GetArea()<<endl;    }    system("pause");    return EXIT_SUCCESS;}


运行结果:


热点排行