【C++之标准类型数据的格式输出1】输入一批数值,要求保留3位小数,且上下行小数点对齐

简介: 【C++之标准类型数据的格式输出1】输入一批数值,要求保留3位小数,且上下行小数点对齐

题目要求


从键盘输入一批数值,要求保留3位小数,在输出时上下行小数点对齐。


——谭浩强的《C++面向对象程序设计》第7章习题第2小题


标准类型数据的格式输出


C++允许用户指定输出格式,实现较为丰富的格式化输出。通常可以通过控制符或流的成员函数两种方式设置输出格式。


用控制符 << 设置输出格式



这些控制符是在头文件 iomanip 中定义的。



用流对象的成员函数控制输出格式


流成员函数 setf 和控制符 setiosflags 括号中参数是格式标志,它是在类 ios 中定义的枚举值。所以在引用这些格式标志时要以 ios:: 开始,格式标志列于下表。




<<控制符和流成员函数设置输出流中的数据基数,虽然它们的功能相似,但是还是有区别:


用控制符设置输出流的数据基数后,这个设置会一直保留到下一次的设置;

用成员函数setf()设置的格式,必须用函数unsetf() 终止后才能重新设置,并且函数setf()设置的基数仅仅在本次输出流中生效,之后无论是否用函数unsetf()终止,下次输出流数据又以默认的十进制基数显示。

通过控制符设置输出格式必须包含iomanip头文件,而通过成员函数设置输出格式无需包含这个头文件,只需包含iostream头文件即可。


程序


/*
*************************************************************************
@file:    main.cpp
@date:   2020.12.23
@author: Xiaoxiao
@brief:   从键盘输入一批数值,要求保留3位小数,在输出时上下行小数点对齐
@blog:    https://blog.csdn.net/weixin_43470383/article/details/111592803
*************************************************************************
*/
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
  double num[3];
  cout << "pls input number:" << endl;
  for (int i = 0; i < 3; i++)
  cin >> num[i];
  cout << setiosflags(ios::fixed) << setprecision(3) << setiosflags(ios::right);
  // 保留3位小数,并且控制右对齐
  cout << endl << "output:" << endl;
  for (int i = 0; i < 3; i++)
  cout << setw(10) << num[i] << endl;
  system("pause");
  return 0;
}


运行结果



输入:

1024.4210

2048.84202

36.1


输出:

1024.421

2048.842

36.100


相关文章
|
9天前
|
存储 算法 搜索推荐
【C++面向对象——群体类和群体数据的组织】实现含排序功能的数组类(头歌实践教学平台习题)【合集】
1. **相关排序和查找算法的原理**:介绍直接插入排序、直接选择排序、冒泡排序和顺序查找的基本原理及其实现代码。 2. **C++ 类与成员函数的定义**:讲解如何定义`Array`类,包括类的声明和实现,以及成员函数的定义与调用。 3. **数组作为类的成员变量的处理**:探讨内存管理和正确访问数组元素的方法,确保在类中正确使用动态分配的数组。 4. **函数参数传递与返回值处理**:解释排序和查找函数的参数传递方式及返回值处理,确保函数功能正确实现。 通过掌握这些知识,可以顺利地将排序和查找算法封装到`Array`类中,并进行测试验证。编程要求是在右侧编辑器补充代码以实现三种排序算法
21 5
|
2月前
|
存储 编译器 Linux
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
194 4
|
3月前
|
存储 编译器 程序员
C++类型参数化
【10月更文挑战第1天】在 C++ 中,模板是实现类型参数化的主要工具,用于编写能处理多种数据类型的代码。模板分为函数模板和类模板。函数模板以 `template` 关键字定义,允许使用任意类型参数 `T`,并在调用时自动推导具体类型。类模板则定义泛型类,如动态数组,可在实例化时指定具体类型。模板还支持特化,为特定类型提供定制实现。模板在编译时实例化,需放置在头文件中以确保编译器可见。
42 11
|
5月前
|
存储 算法 C++
C++ STL应用宝典:高效处理数据的艺术与实战技巧大揭秘!
【8月更文挑战第22天】C++ STL(标准模板库)是一组高效的数据结构与算法集合,极大提升编程效率与代码可读性。它包括容器、迭代器、算法等组件。例如,统计文本中单词频率可用`std::map`和`std::ifstream`实现;对数据排序及找极值则可通过`std::vector`结合`std::sort`、`std::min/max_element`完成;而快速查找字符串则适合使用`std::set`配合其内置的`find`方法。这些示例展示了STL的强大功能,有助于编写简洁高效的代码。
64 2
|
5月前
|
编译器 C++
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
virtual类的使用方法问题之C++类中的非静态数据成员是进行内存对齐的如何解决
|
4月前
|
安全 程序员 C语言
C++(四)类型强转
本文详细介绍了C++中的四种类型强制转换:`static_cast`、`reinterpret_cast`、`const_cast`和`dynamic_cast`。每种转换都有其特定用途和适用场景,如`static_cast`用于相关类型间的显式转换,`reinterpret_cast`用于低层内存布局操作,`const_cast`用于添加或移除`const`限定符,而`dynamic_cast`则用于运行时的类型检查和转换。通过具体示例展示了如何正确使用这四种转换操作符,帮助开发者更好地理解和掌握C++中的类型转换机制。
|
5月前
|
C++
使用 QML 类型系统注册 C++ 类型
使用 QML 类型系统注册 C++ 类型
133 0
|
5月前
|
存储 C++
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
61 0
|
5月前
|
设计模式 安全 IDE
C++从静态类型到单例模式
C++从静态类型到单例模式
46 0
|
9天前
|
C++ 芯片
【C++面向对象——类与对象】Computer类(头歌实践教学平台习题)【合集】
声明一个简单的Computer类,含有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,以及两个公有成员函数run、stop。只能在类的内部访问。这是一种数据隐藏的机制,用于保护类的数据不被外部随意修改。根据提示,在右侧编辑器补充代码,平台会对你编写的代码进行测试。成员可以在派生类(继承该类的子类)中访问。成员,在类的外部不能直接访问。可以在类的外部直接访问。为了完成本关任务,你需要掌握。
49 18