【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


目录
打赏
0
0
0
0
5
分享
相关文章
从集思录可转债数据探秘:Python与C++实现的移动平均算法应用
本文探讨了如何利用移动平均算法分析集思录提供的可转债数据,帮助投资者把握价格趋势。通过Python和C++两种编程语言实现简单移动平均(SMA),展示了数据处理的具体方法。Python代码借助`pandas`库轻松计算5日SMA,而C++代码则通过高效的数据处理展示了SMA的计算过程。集思录平台提供了详尽且及时的可转债数据,助力投资者结合算法与社区讨论,做出更明智的投资决策。掌握这些工具和技术,有助于在复杂多变的金融市场中挖掘更多价值。
39 12
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
在数字化办公时代,公司监控上网软件成为企业管理网络资源和保障信息安全的关键工具。本文深入剖析C++中的链表数据结构及其在该软件中的应用。链表通过节点存储网络访问记录,具备高效插入、删除操作及节省内存的优势,助力企业实时追踪员工上网行为,提升运营效率并降低安全风险。示例代码展示了如何用C++实现链表记录上网行为,并模拟发送至服务器。链表为公司监控上网软件提供了灵活高效的数据管理方式,但实际开发还需考虑安全性、隐私保护等多方面因素。
11 0
公司监控上网软件架构:基于 C++ 链表算法的数据关联机制探讨
【C++面向对象——群体类和群体数据的组织】实现含排序功能的数组类(头歌实践教学平台习题)【合集】
1. **相关排序和查找算法的原理**:介绍直接插入排序、直接选择排序、冒泡排序和顺序查找的基本原理及其实现代码。 2. **C++ 类与成员函数的定义**:讲解如何定义`Array`类,包括类的声明和实现,以及成员函数的定义与调用。 3. **数组作为类的成员变量的处理**:探讨内存管理和正确访问数组元素的方法,确保在类中正确使用动态分配的数组。 4. **函数参数传递与返回值处理**:解释排序和查找函数的参数传递方式及返回值处理,确保函数功能正确实现。 通过掌握这些知识,可以顺利地将排序和查找算法封装到`Array`类中,并进行测试验证。编程要求是在右侧编辑器补充代码以实现三种排序算法
47 5
【c++】类和对象(上)(类的定义格式、访问限定符、类域、类的实例化、对象的内存大小、this指针)
本文介绍了C++中的类和对象,包括类的概念、定义格式、访问限定符、类域、对象的创建及内存大小、以及this指针。通过示例代码详细解释了类的定义、成员函数和成员变量的作用,以及如何使用访问限定符控制成员的访问权限。此外,还讨论了对象的内存分配规则和this指针的使用场景,帮助读者深入理解面向对象编程的核心概念。
276 4
C++类型参数化
【10月更文挑战第1天】在 C++ 中,模板是实现类型参数化的主要工具,用于编写能处理多种数据类型的代码。模板分为函数模板和类模板。函数模板以 `template` 关键字定义,允许使用任意类型参数 `T`,并在调用时自动推导具体类型。类模板则定义泛型类,如动态数组,可在实例化时指定具体类型。模板还支持特化,为特定类型提供定制实现。模板在编译时实例化,需放置在头文件中以确保编译器可见。
55 11
C++ STL应用宝典:高效处理数据的艺术与实战技巧大揭秘!
【8月更文挑战第22天】C++ STL(标准模板库)是一组高效的数据结构与算法集合,极大提升编程效率与代码可读性。它包括容器、迭代器、算法等组件。例如,统计文本中单词频率可用`std::map`和`std::ifstream`实现;对数据排序及找极值则可通过`std::vector`结合`std::sort`、`std::min/max_element`完成;而快速查找字符串则适合使用`std::set`配合其内置的`find`方法。这些示例展示了STL的强大功能,有助于编写简洁高效的代码。
83 2
C++(四)类型强转
本文详细介绍了C++中的四种类型强制转换:`static_cast`、`reinterpret_cast`、`const_cast`和`dynamic_cast`。每种转换都有其特定用途和适用场景,如`static_cast`用于相关类型间的显式转换,`reinterpret_cast`用于低层内存布局操作,`const_cast`用于添加或移除`const`限定符,而`dynamic_cast`则用于运行时的类型检查和转换。通过具体示例展示了如何正确使用这四种转换操作符,帮助开发者更好地理解和掌握C++中的类型转换机制。
|
6月前
|
C++
使用 QML 类型系统注册 C++ 类型
使用 QML 类型系统注册 C++ 类型
174 0
|
6月前
|
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
【C/C++学习笔记】string 类型的输入操作符和 getline 函数分别如何处理空白字符
71 0
【C++篇】深度解析类与对象(下)
在上一篇博客中,我们学习了C++的基础类与对象概念,包括类的定义、对象的使用和构造函数的作用。在这一篇,我们将深入探讨C++类的一些重要特性,如构造函数的高级用法、类型转换、static成员、友元、内部类、匿名对象,以及对象拷贝优化等。这些内容可以帮助你更好地理解和应用面向对象编程的核心理念,提升代码的健壮性、灵活性和可维护性。