`
YuHuang.Neil
  • 浏览: 187557 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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;
}


运行结果:


  • 大小: 27.7 KB
分享到:
评论

相关推荐

    C++/CLI教程

    16. 数组(Arrays):包括本地数组(native arrays)和托管数组(managed arrays),在C++/CLI中它们的使用和管理有显著区别。 17. 容器(Containers):C++/CLI提供了多种集合类型,如列表、字典等,它们是.NET...

    C/C++处理文本中中文内容

    在C/C++编程中,处理中文内容涉及到许多关键知识点,特别是在面对半角和全角字符时。半角字符和全角字符是中文环境下常见的字符表示形式,它们在宽度和编码上有所不同,对于文本处理和输出格式有着显著影响。 首先...

    C++笔记-适合有c语言基础-课程基础资源

    C++笔记-适合有C语言基础-课程基础资源 ...输入与输出是C++语言中的基本操作,包括一般输出格式、输入流的声明等。输出格式在定义流对象时,系统会在内存中开辟一段缓冲区,用来暂存输入输出流的数据。

    C++11新特性.pdf

    C++11中&gt;&gt;变得合法,并且能够顺利通过编译,例如我们可以定义一个二维向量vector,即在一层vector中再嵌套一层vector,这在C++11之前是不能被编译通过的。 五、Lambda表达式 Lambda表达式是一个匿名函数,也就是...

    C++实验指导书

    - **语法特性**:熟悉C++的语法特性,理解C与C++之间的区别和兼容性。 - **面向对象原理**:掌握面向对象程序设计的基本原理,包括类、对象、抽象、封装、继承和多态性等核心概念及其在C++中的实现方式。 - **程序...

    C++编程思想.pdf

    9.3 C++中的静态成员 166 9.3.1 定义静态数据成员的存储 166 9.3.2 嵌套类和局部类 168 9.3.3 静态成员函数 169 9.4 静态初始化的依赖因素 171 9.5 转换连接指定 174 9.6 小结 174 9.7 练习 174 第10章 引用和拷贝...

    把脉C++总结

    - **主题概述**:本篇旨在介绍如何利用Visual C++环境进行应用程序开发,包括但不限于基础设置、项目搭建等。 - **主要内容**: - **Visual C++简介**:Visual C++是Microsoft为C++语言提供的一套集成开发环境(IDE...

    c++与c的区别

    根据给定文件的信息,我们可以提炼出C++与C语言之间的主要区别,并对这些知识点进行详细的阐述。 ### 1. 内存管理 #### C语言 在C语言中,内存分配和释放主要通过以下函数实现: - **malloc(size)**:根据指定的...

    c c++函数手册.rar

    3. 格式化输出:iomanip库提供了设置输出格式的功能,如精度控制、填充字符等。 4. 容器类(如vector、list、set、map):STL(Standard Template Library)中的容器类提供了高效的数据存储和操作。 5. 迭代器:用于...

    C++编程思想(pdf格式)

    9.3 C++中的静态成员 166 9.3.1 定义静态数据成员的存储 166 9.3.2 嵌套类和局部类 168 9.3.3 静态成员函数 169 9.4 静态初始化的依赖因素 171 9.5 转换连接指定 174 9.6 小结 174 9.7 练习 174 第10章 引用和拷贝...

    C++与C#的一些比较

    C#的输入/输出服务和格式设置依赖于.NET Framework的运行时库。 最后,C#不支持方法参数的默认值,但可以通过方法重载来达到类似的效果。总的来说,C++和C#各有优势,选择哪种语言取决于具体项目需求和个人偏好。

    C++判断题题库

    - **解释**: “设置和清除格式标志字的成员函数需要通过对象来引用它们”这一说法是正确的,但这些格式标志位是可以通过相应的成员函数进行设置和清除的。 #### 42. 流对象的操作 - **知识点**: 操作子可以被提取符...

    H265转码器,c++开发,支持gpu

    在C++环境中开发H265转码器,你需要熟悉OpenCV、FFmpeg或Intel Media SDK等开源库。这些库提供了处理视频编码和解码的API,使得开发者能够便捷地集成到自己的应用中。例如,FFmpeg支持多种视频编解码格式,包括H265...

    C++学习启示

    printf是C语言的标准库函数,用于格式化输出,而std::cout是C++中的标准输出流对象,两者的主要区别在于使用方式和灵活性。printf采用格式字符串,允许在输出中混合不同类型的数据,并通过占位符控制输出格式。而std...

    新手学习C++入门资料

    在C++中,允许有相同的函数名,不过它们的参数类型不能完全相同,这样这些函数就可以相互区别开来。而这在C语言中是不允许的。 1.参数个数不同 #include iostream.h void a(int,int); void a(int); int main...

    Visual C++ 完全自学宝典 (部分章节) 电子书 PDF

    **1.1 C++和C#、Java的区别** - **面向对象还是面向过程** - **C++**:支持面向对象编程同时也支持面向过程编程,这取决于程序员如何组织代码。 - **C#与Java**:这两种语言主要是面向对象的,几乎所有的代码都...

    C++实现ini文件读写(Linux和windows平台均可运行)

    在编程领域,ini文件是一种常见的配置文件格式,用于存储应用程序的设置和参数。它们以文本形式存在,结构简单,易于理解和编辑。C++虽然没有内置的ini文件处理库,但可以通过标准库和自定义逻辑来实现ini文件的读写...

Global site tag (gtag.js) - Google Analytics