首页 > 编程语言 >C++输入输出,设置精度setprecision、域宽setw、填充setfill

C++输入输出,设置精度setprecision、域宽setw、填充setfill

时间:2023-06-27 23:11:08浏览次数:41  
标签:cout 填充 setprecision C++ setw 设置 include

本文的三个函数均需要引入头文件:#include <iomanip>

设置输出精度 setprecision(int n)

参考:C语言中文网:c++ setprecision用法详解

// 写法1
cout << setprecision(10) << a << endl;

// 写法2:a、b、c都将以10位有效位输出
cout << setprecision(10);
cout << a << endl;
cout << b << endl;
cout << c << endl;
  1. setprecision设置的是有效位数,即出现在小数点前后的总位数。
  2. 默认情况下,系统使用6个有效位显示浮点值。
  3. 如果设置的有效位数小于原数的位数,setprecision将四舍五入,而不是截断数字。
  4. 如果设置的有效位数大于原数的位数,则setprecision不起作用,还是按照原数显示。
  5. 末尾的零将被省略。因此,尽管指定了 setprecision(5),但是 21.40 仍显示为 21.4。
  6. 与 setw 字段宽度不同的是,setprecision 的精度设置将保持有效,直到更改为其他值为止。
  7. 可以通过cout.precision()查看当前的输出精度。
    image

设置域宽setw(int n)

  1. setw() 函数只对紧接着的输出产生作用。
  2. 当后面紧跟着的输出字段长度小于 n 的时候,在该字段前面用空格补齐,当输出字段长度大于 n 时,全部整体输出。
    image
#include <iostream>
#include <iomanip>

using namespace std;

int main()
{
    // 开头设置宽度为 4,后面的 runoob 字符长度大于 4,所以不起作用
    cout << setw(4) << "runoob" << endl;
    // 中间位置设置宽度为 4,后面的 runoob 字符长度大于 4,所以不起作用
    cout << "runoob" << setw(4) << "runoob" << endl;
    // 开头设置间距为 14,后面 runoob 字符数为6,前面补充 8 个空格
    cout << setw(14) << "runoob" << endl;
    // 中间位置设置间距为 14 ,后面 runoob 字符数为6,前面补充 8 个空格
    cout << "runoob" << setw(14) << "runoob" << endl;
    return 0;
}

运行结果:
image

设置填充

  1. setw() 默认填充的内容为空格,可以 setfill() 配合使用设置其他字符填充。
cout << setfill('*')  << setw(14) << "runoob" << endl;
// 输出结果:********runoob

标签:cout,填充,setprecision,C++,setw,设置,include
From: https://www.cnblogs.com/ZhuYuxi/p/17510153.html

相关文章

  • C/C++烧烤节管理系统[2023-06-27]
    C/C++烧烤节管理系统[2023-06-27]烧烤节管理系统1、问题描述淄博烧烤今年大火,“进淄赶烤”是大家最想干的事情,淄博烧烤大火特火的原因,火的不是烧烤,火的是人间烟火,火的是政通人和,火的是好客山东!火热的烧烤带动了淄博的旅游和经济,使一个三四线城市火出了圈,全部各地的城市都争相......
  • C/C++全国交通咨询模拟系统[2023-06-27]
    C/C++全国交通咨询模拟系统[2023-06-27](1)提供对城市信息进行编辑(如:添加或删除)的功能。(2)城市之间有三种交通工具:汽车、火车或飞机,提供对全国城市交通图和汽车时刻表、列车时刻表及飞机航班表进行编辑的功能。(信息的输入方式可以是文件输入和键盘输入两种方式)。(3)提供两种最优决策......
  • C++基本数据类型的大小和取值范围
    bit,byte,wordbit比特,位Computersstoredataasasequenceofbits,eachholdinga0or1,suchas00011011011...byte字节Mostcomputersdealwithmemoryaschunksofbitsofsizesthatarepowersof2.Thesmallestchunkofaddressablememoryis......
  • LeetCode C++:HashTable篇
    1、TwoSumGivenanarrayofintegersnums andanintegertarget,returnindicesofthetwonumberssuchthattheyadduptotarget.Youmayassumethateachinputwouldhaveexactlyonesolution,andyoumaynotusethesameelementtwice.Youcanreturn......
  • vscode--C++配置问题
    1、#include<iostream>报红但是能正常运行解决方案:win+Rcmd进入输入gcc-v-E-xc++-将红框中数据复制进随后保存即可......
  • 在Androidstudio 中 通过jni java 和c++相互调用实现方法
    在Androidstudio中通过jnijava和c++相互调用实现方法1.创建javanative方法类publicclassNativeAPI{privatestaticfinalStringTAG=APP_TAG+"TestJni";static{System.loadLibrary("testnative");}//从c++so中获取字符串publicna......
  • C++太难学,怎么破?这本书给你指点迷津!
    2021年在线学习平台Springboard选出了最难学的编程语言TOP5,C++排在其中之一。C++难学的理由很多,比如它语法复杂,语法特性多,编程范式灵活,标准库内容过于基础,还要具备C语言基础等等。提起C++,它是由C语言大幅扩展而成,且用途非常广泛,例如用于Windows等操作系统、文字处理和......
  • C++ 容器比较 - Vector,
    C++容器STL准备了两类7种基本容器类型1.序列式容器:向量(vector)/双端队列(deque)/列表(List)/(string,array当做一种序列式容器)-与插入次序有关2.关联式容器(已序群集)-与插入次序无关(set,multiset,map,multiset)1.vectorvector(向量):是一种序列式容器,事实上和数组差不多,但它......
  • C++面试八股文:什么是智能指针?
    C++面试八股文:什么是智能指针?某日二师兄参加XXX科技公司的C++工程师开发岗位第19面:面试官:什么是智能指针?二师兄:智能指针是C++11引入的类模板,用于管理资源,行为类似于指针,但不需要手动申请、释放资源,所以称为智能指针。面试官:C++11引入了哪些智能指针?二师兄:三种,分别是sh......
  • C++ Primer 第一章 开始
    输入输出C++并未定义任何输入输出,取而代之包含了一个标准库提供输入输出。iostream库包含两个基础类型:istream和ostream,分别表示输入流和输出流,流代表字符序列。标准库定义了4个IO对象cin为istream类型对象,也称为标准输入cout为ostream类型对象,也称为标准输出标准库还定义了......