今天使用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
分享到:
相关推荐
16. 数组(Arrays):包括本地数组(native arrays)和托管数组(managed arrays),在C++/CLI中它们的使用和管理有显著区别。 17. 容器(Containers):C++/CLI提供了多种集合类型,如列表、字典等,它们是.NET...
在C/C++编程中,处理中文内容涉及到许多关键知识点,特别是在面对半角和全角字符时。半角字符和全角字符是中文环境下常见的字符表示形式,它们在宽度和编码上有所不同,对于文本处理和输出格式有着显著影响。 首先...
C++笔记-适合有C语言基础-课程基础资源 ...输入与输出是C++语言中的基本操作,包括一般输出格式、输入流的声明等。输出格式在定义流对象时,系统会在内存中开辟一段缓冲区,用来暂存输入输出流的数据。
C++11中>>变得合法,并且能够顺利通过编译,例如我们可以定义一个二维向量vector,即在一层vector中再嵌套一层vector,这在C++11之前是不能被编译通过的。 五、Lambda表达式 Lambda表达式是一个匿名函数,也就是...
- **语法特性**:熟悉C++的语法特性,理解C与C++之间的区别和兼容性。 - **面向对象原理**:掌握面向对象程序设计的基本原理,包括类、对象、抽象、封装、继承和多态性等核心概念及其在C++中的实现方式。 - **程序...
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章 引用和拷贝...
- **主题概述**:本篇旨在介绍如何利用Visual C++环境进行应用程序开发,包括但不限于基础设置、项目搭建等。 - **主要内容**: - **Visual C++简介**:Visual C++是Microsoft为C++语言提供的一套集成开发环境(IDE...
根据给定文件的信息,我们可以提炼出C++与C语言之间的主要区别,并对这些知识点进行详细的阐述。 ### 1. 内存管理 #### C语言 在C语言中,内存分配和释放主要通过以下函数实现: - **malloc(size)**:根据指定的...
3. 格式化输出:iomanip库提供了设置输出格式的功能,如精度控制、填充字符等。 4. 容器类(如vector、list、set、map):STL(Standard Template Library)中的容器类提供了高效的数据存储和操作。 5. 迭代器:用于...
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#的输入/输出服务和格式设置依赖于.NET Framework的运行时库。 最后,C#不支持方法参数的默认值,但可以通过方法重载来达到类似的效果。总的来说,C++和C#各有优势,选择哪种语言取决于具体项目需求和个人偏好。
- **解释**: “设置和清除格式标志字的成员函数需要通过对象来引用它们”这一说法是正确的,但这些格式标志位是可以通过相应的成员函数进行设置和清除的。 #### 42. 流对象的操作 - **知识点**: 操作子可以被提取符...
在C++环境中开发H265转码器,你需要熟悉OpenCV、FFmpeg或Intel Media SDK等开源库。这些库提供了处理视频编码和解码的API,使得开发者能够便捷地集成到自己的应用中。例如,FFmpeg支持多种视频编解码格式,包括H265...
printf是C语言的标准库函数,用于格式化输出,而std::cout是C++中的标准输出流对象,两者的主要区别在于使用方式和灵活性。printf采用格式字符串,允许在输出中混合不同类型的数据,并通过占位符控制输出格式。而std...
在C++中,允许有相同的函数名,不过它们的参数类型不能完全相同,这样这些函数就可以相互区别开来。而这在C语言中是不允许的。 1.参数个数不同 #include iostream.h void a(int,int); void a(int); int main...
**1.1 C++和C#、Java的区别** - **面向对象还是面向过程** - **C++**:支持面向对象编程同时也支持面向过程编程,这取决于程序员如何组织代码。 - **C#与Java**:这两种语言主要是面向对象的,几乎所有的代码都...
在编程领域,ini文件是一种常见的配置文件格式,用于存储应用程序的设置和参数。它们以文本形式存在,结构简单,易于理解和编辑。C++虽然没有内置的ini文件处理库,但可以通过标准库和自定义逻辑来实现ini文件的读写...