C++格式输入输出

news2024/12/23 13:29:39

🐶博主主页:@ᰔᩚ. 一怀明月ꦿ 

❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C++,数据结构

🔥座右铭:“不要等到什么都没有了,才下定决心去做”

🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀

目录

🐰C++格式输入输出

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

🌸1.控制格式的标志位

🌸2.使用成员函数设置标志字

🌸3.使用成员函数设置域宽、填充字节、精度

🏡用控制符控制输入输出格式


🐰C++格式输入输出

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

🌸1.控制格式的标志位

在ios类中声明了数据成员x_flags(声明语句:long x_flags;),它存储控制输入输出格式的状态标志,每个状态标志占一位。状态标志的值只能是ios类中定义的枚举量.

例如:

 

如果设置了某个状态标志,则x_flags中对应位为1,否则为0.这些状态标志之间是或的关系,可以标志并存

🌸2.使用成员函数设置标志字

ios类中定义了数据成员x_flags来记录当前格式化的状态,即各标志位的设置值,这个数据成员被称为标志字。格式标志在类ios中被定义为枚举值,因此在引用这些格式标志时要在前面加上类名ios和域运算符"::"。设置这个标志字的成员函数为setf,其调用格式如下:

stream_obj.setf(ios::标志位名);

这里,stream_obj是要设置格式标志的流对象,常用的是cin和cout。要设置多个标志时,使用位运算符'|'

cout.setf(ios::dec|ios::scientific);

(1)清除状态标志。

unsetf函数用来清除一个状态标志,即指定的状态标志位为0,

stream_obj.unsetf(ios::标志位名);

(2)取消标志状态值。flags函数用来取当前状态标志。

有两种方法:

stream_obj.flags();
stream_obj.flags(ios::标志位名);

不带参数的函数是返回与流相关的当前状态标志值。带参数的函数是把状态标志值设置为标志位名指定的值,并返回设置前的状态标志值。

注意:函数setf是在原有的基础上追加设定,而flags函数是用新值覆盖以前的值。

#include<iostream>
using namespace std;
int main()
{
    cout.flags(ios::oct);
    cout<<"OCT:1010="<<1010<<endl;//1010的8进制形式
    cout.flags(ios::dec);
    cout<<"DEC:1010="<<1010<<endl;//1010的10进制形式
    cout.flags(ios::hex);
    cout<<"HEX:1010="<<1010<<endl;//1010的16进制形式
    cout.flags(ios::uppercase|ios::hex);
    cout<<"UPPERCASE:1010="<<1010<<endl;//1010的16进制且大写的形式
    cout.unsetf(ios::hex);//清除标志字
    cout<<1010<<endl;
    return 0;
}
结果:
OCT:1010=1762
DEC:1010=1010
HEX:1010=3f2
UPPERCASE:1010=3F2
1010

🌸3.使用成员函数设置域宽、填充字节、精度

在ios类中,除了提供了操作状态标志的成员函数外,还提供了设置域宽、填充字节、精度的成员函数来对输出进行格式化

(1)设置域宽的成员函数width

有两种形式:

【1】int width()//该函数用来返回当前输出数据时的宽度

【2】in width(int wid)//该函数用来设置当前输出数据的宽度为wid,并返回更新前的宽度值

注意:如果输出宽度没有设置,那么默认情况下为数据所占最少字符数。所设置的域宽仅对下一个输出流有效,当一次输出完成后,域宽恢复为0

(2)设置填充字符的成员函数fill

有两种形式:

【1】char fill()//该函数用来返回当前所使用的填充字符

【2】char fill(char c)//带参数的fill函数用来设置填充字符为参数c字符,并返回更新之前的填充字符

注意:如果填充字符省略,那么默认填充字符为空格符。如果设置的数据宽度小于数据所需要的最少字符,则数据宽度默认宽度处理。

(3)设置浮点数输出精度的成员函数precision

有两种形式:

【1】int precision()//该函数返回当前浮点数的有效数字的个数

【2】int precision(int n)//该函数设置浮点数输出时的有效数字个数,并返回更新前的值

注意:float实数最多提供7有效数字,double型实数最多提供15位有效数字,long double型实数最多提供19位有效数字

#include<iostream>
using namespace std;
int main()
{
    cout<<"5201314"<<endl;
    cout<<"Default width:"<<cout.width()<<endl;
    cout.width(12);
    cout<<520<<endl;
    cout<<"Default fill:"<<cout.fill()<<endl;
    cout.width(12);
    cout.fill('#');
    cout<<"Default precision:"<<cout.precision()<<endl;
    cout.precision(5);
    cout<<3.1415926<<endl;
    return 0;
}
结果:
5201314
Default width:0
         520
Default fill:
Default precision:6
3.1416(如果域宽不够,就会四舍五入)

🏡用控制符控制输入输出格式

使用ios类的成员函数来控制输入或输出格式时,必须有流对象来进行调试,使用不方便。我们可以使用特殊的、类似于函数的控制符来进行控制。控制符可以直接嵌入到输入或输出操作的语句中。控制符如下

 

这些控制符是在iomanip中定义的,因此如果在程序中使用这些控制符必须把头文件iomanip包含进来。

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
    cout<<"DEC:"<<dec<<1010<<endl;
    cout<<"HEX:"<<hex<<1010<<endl;
    cout<<"OCT:"<<oct<<1010<<endl;
    cout<<"OCT:"<<setbase(8)<<1010<<endl;//setbase(n)设置的格式(0,8,10,16)默认值为0
    cout<<setw(15)<<"hello world!"<<endl;
    return 0;
}
结果:
DEC:1010
HEX:3f2
OCT:1762
OCT:1762
   hello world!

🌸🌸🌸如果大家还有不懂或者建议都可以发在评论区,我们共同探讨,共同学习,共同进步。谢谢大家! 🌸🌸🌸 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/504935.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

常用的数据中心部署架构

说起数据中心&#xff0c;相信大家并不陌生。随着互联网行业的蓬勃发展&#xff0c;大数据时代的快速到来&#xff0c;数据中心同我们的生活紧密联系&#xff0c;息息相关。我们日常生活中的各种数据几乎都存储在数据中心里&#xff0c;例如&#xff1a;手机照片的云端备份、放…

Python小姿势 - # Python相关技术知识点

Python相关技术知识点 标题 在Python中如何处理文件 如果你要处理文件&#xff0c;那么在Python中你需要使用到os模块中的一些方法。 首先&#xff0c;你需要使用os.path.exists方法来判断文件是否存在&#xff1a; python if os.path.exists(file.txt): print(文件存在) else:…

asp.net企业员工考勤管理系统

企业员工管理系统主要是为企业内部管理员工使用的&#xff0c;主要功能分为员工和管理员两部分&#xff0c;主要的功能有用户登录&#xff0c;管理员信息管理&#xff0c;公告信息管理&#xff0c;文件审批管理&#xff0c;员工信息管理&#xff0c;工资信息管理&#xff0c;奖…

全景丨0基础学习VR全景制作,平台篇第19章:热点功能-文本

大家好&#xff0c;欢迎观看蛙色VR官方——后台使用系列课程&#xff01; 功能说明 应用场景 热点&#xff0c;指在全景作品中添加各种类型图标的按钮&#xff0c;引导用户通过按钮产生更多的交互&#xff0c;增加用户的多元化体验。 文本热点&#xff0c;即点击热点后会弹出…

一顿饭的事儿,搞懂了Linux5种IO模型

大家好&#xff0c;我是老三&#xff0c;人生有三大难题&#xff0c;事业、爱情&#xff0c;和 ——这顿吃什么&#xff01; 人在家中躺&#xff0c;肚子饿得响&#xff0c;又到了不得不吃的时候&#xff0c;这顿饭该怎么吃&#xff1f;吃什么呢&#xff1f; Linux里有五种I…

【笔记】【HTTP】《图解HTTP》第1章 了解Web及网络基础

前言 有输入就要有产出&#xff0c;该笔记是本人看完《图解HTTP》后对每章涉及到的知识进行汇总博客将会已书的每章为一篇发布&#xff0c;下一篇博客发布时间不确定笔记中有些个人理解后整理的笔记&#xff0c;可能有所偏差&#xff0c;也恳请读者帮忙指出&#xff0c;谢谢。…

在Notion AI 中轻松打造您的AI私人助理,提供卓越的工作体验

大家好&#xff0c;我是瓜叔。 相信平时喜欢做笔记的人对notion 选应该不陌生近年来越来越多人开始把notion 选当做他们的主力笔记软件。 我自己也用了约4年的时间。如果你也是notion的爱好者但还不知道notion AI是什么。那这篇文章&#xff0c;我会分享我是如何实际操作使用技…

Windows terminal+wsl+ohmyzsh+powerlevel10k打造更美丽的终端

安装wsl 安装 WSL 和 Linux 的默认 Ubuntu 发行版。 了解详细信息https://learn.microsoft.com/zh-cn/windows/wsl/install。 还可以使用此命令通过运行 wsl --install 来安装其他 Linux 发行版。 若要获取发行版名称的有效列表&#xff0c;请运行 wsl --list --online。 wsl -…

AIOps探索 | 新形势下,中小银行如何学好数字化转型“必修课”?

一、强化数智驱动 推进转型升级 2023年4月21日&#xff0c;在江苏省支付清算服务协会、山东省支付清算协会的大力支持下&#xff0c;由金科创新社&#xff08;鑫知&#xff09;主办的“2023农村中小银行数字化转型研讨会”在江苏南京成功举办。 ​本次大会以“强化数智驱动 推…

深入浅出堆—C语言版【数据结构】

二叉树概念博客&#xff1a;http://t.csdn.cn/XIW84 目录 1. 了解堆 1.1 堆的概念 1.2 堆的性质&#xff1a; 1.3 堆的结构图片 1.3.1 小堆 1.3.2 大堆 2. 堆的实现 2.1 插入数据进堆 2.2 向上调整函数 2.3 堆的删除 2.4 向下调整 3. 堆的应用 3.1 建堆&#xff…

赚钱单页产品

今天写一篇文章&#xff0c;讲一个最近看的赚钱单页产品。 先下定义&#xff0c;什么是赚钱的单页产品&#xff1a; 能赚钱&#xff1a;需求切的准单页产品&#xff1a;通常只有少数几个页面就完成了产品的核心功能&#xff0c;一个程序员可以在1天左右&#xff0c;完成开发 先…

快速理解基本的cookie、session 和 redis

一、Cookie 1、什么是Cookie 1、Cookie实际上是一小段的文本信息&#xff0c;是一种keyvalue形式的字符串。客户端请求服务器&#xff0c;如果服务器需要记录该用户状态&#xff0c;就使用response向客户端浏览器颁发一个Cookie。客户端会把Cookie保存起来。 2、当浏览器再请求…

跨境电商系统开发需要注意的问题

跨境商城系统开发需要考虑许多特殊问题&#xff0c;比如涉及跨国支付、物流、法律和政策、文化差异等等。下面将列出一些重要的问题&#xff0c;来帮助您更有效地开发跨境电商系统。 1、税务问题 当涉及跨国交易时&#xff0c;涉及不同国家和地区的税收政策和税率。特别是在国…

2023亚马逊云科技中国峰会开启报名 6月27-28日上海见

2023年6月27-28日&#xff0c;2023亚马逊云科技中国峰会&#xff0c;亚马逊云科技将聚焦构建新技术加速的产品创新、新架构提升的业务弹性、云计算引领的创新模式&#xff0c;围绕价值加速实现&#xff0c;企业敏捷稳健&#xff0c;行业全新机遇等热门话题&#xff0c;携手众多…

( 位运算 ) 136. 只出现一次的数字 ——【Leetcode每日一题】

❓136. 只出现一次的数字 难度&#xff1a;简单 给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算法只使用常量…

学习dtw-python库内容 动态弯曲距离(DTW)具体实现

文章目录 一、install 数据包二、函数功能三、函数的参数以及含义四、具体实现 一、install 数据包 简单的pip install一下就好了&#xff0c;注意最后提示Successfully installed dtw-python-1.3.0 pip install dtw-python二、函数功能 执行 DTW 算法&#xff0c;并计算两个…

网页端操作提示「msg.js」库简介

这段时间我正在完成我的第一本个人图书&#xff0c;期间做了很多的案例&#xff0c;最近需要在网页端完成一个关于「恶意文本检测」的案例&#xff0c;为了让该案例表现的更加易用简洁、对用户友好&#xff0c;我需要在页面中添加一些用户操作提示信息&#xff0c;比如「正在加…

【HMS Core】Health Kit想要查看数据是来自用户的哪个设备,如何查看?

【问题描述1】 如何查看运动健康数据是来自用户的哪个设备&#xff1f; 【解决方案】 可以通过返回的数据中携带的dataCollectorId来查询提供数据的设备信息&#xff1a; 请求示例&#xff08;以查询睡眠记录详情为例&#xff09;&#xff1a; 1、查询睡眠记录并关联睡眠状…

后端使用phantomjs对页面进行截图

最近碰到这样一些需求&#xff0c;后端需要对某个图表页面进行动态截图&#xff0c;将截图通过邮件发送到指定邮箱进行每日提醒。 这就需要用到无界浏览器进行此类操作。常见的无界浏览器有以下几种&#xff0c;知识来源于chatgpt3.5&#xff1a; Headless Chrome - Google C…

NC – 靶向特定功能的神经元细胞类型治疗脑部疾病

神经元是大脑的主要功能单位。这些细胞中传递的信号——以电波的形式——导致所有思维、感觉、运动、记忆和情感。 塞达斯-西奈医学中心的研究人员利用计算机模型来弥合“试管”神经元数据和这些细胞在大脑中的功能之间的差距。他们的研究有助于开发靶向特定功能的神经元类型治…