C++I/O流——(4)格式化输入/输出(第一节)

news2024/10/6 18:27:31

归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝
含泪播种的人一定能含笑收获!

一起加油!

目录

前言:

 用ios类成员函数实现格式化输入/输出:

1.控制输入/输出的标志位:

2.控制输出格式的成员函数: 


前言:

        以上介绍的都是按照系统默认的格式进行输入/输出,即无格式输入/输出,主要针对简单的程序和数据,为了方便采取了默认的格式。然而,有时程序需要按照特定的格式进行输入/输出.例如,要求用十六进制输出整数,或者对输出的小数只保留三位小数等,这种按指定的格式输出,被称为格式化输入输出。C++提供了两种方法可以进行输入/输出格式化的操作:一种是用IOS类成员函数控制格式,另一种是利用特定的操作符函数实现格式控制。

 用ios类成员函数实现格式化输入/输出:

该方法要使用ios类中定义的用来控制格式的标志位和用来设置格式的成员函数。

1.控制输入/输出的标志位:

        在流类库根类ios base 中,有一个作为数据成员的格式控制变量,用来记录格式标志;通过设置标志,可以控制格式化输入/输出效果。各种格式标志被定义为枚举类型中的一组符号常量该枚举的定义如下:

enum

{

skipws=0x0001
left=0x0002
right=0x0004
internal=0x0008
dec==0x0010
oct=0x0020
hex=0x0040
showbase-0x0080
showpoint=0x0100
uppercase=0x0200
showpos=0x0400
scientific=0x0800
fixed=0x1000
unitbuf=0x2000
stdio=0x4000

}

此枚举类型的每个成员分别定义标志位的一个位。其每个位表示不同的含义,引用这些格式标志时要在前面加上类名ios和域运算符“::”。

ios::skipws            0x0001             跳过输入中的空白符
ios::left              0x0002                 输出数据按输出域左对齐
ios::right        0x0004                     输出数据按输出域右对齐
ios::internal        0x0008    数据的符号左对齐,数据本身右对齐,符号和数据之间为填充符
ios::dec            0x0010                  转换基数为十进制形式 

ios::oct   0x0020   转换基数为八进制形式
ios::hex   0x0040   转换基数为十六进制形式
ios::showbase   0x0080    输出的数值数据前面带有基数符号(0或0x)
ios::showpoint   0x0100   浮点数输出带有小数点
ios::uppercase   0x0200   用大写字母输出十六进制数值
ios::showpos   0x0400   正数前面带有符号“+”
ios::scientific   0x0800   浮点数输出待用科学表示法
ios::fixed   0x1000   使用定点数(小数)形式表示浮点数
ios::unitbuf   0x2000   完成输入操作后立即刷新流的缓冲区
ios::stdio   0x4000    完成输入操作后刷新系统的stdout.stderr

2.控制输出格式的成员函数: 

IOS类提供了几个用于控制输入/输出格式的成员函数。

long flags()该函数返回当前标志字
long flags(long)该函数使用参数更新标志字,并返回更新前的标志字
long setf(long setbits,long field)该函数用来将field参数所指定的标志位清零,将setbits参数的标志位置1,并返回设置前的标志字
long setf (long)该函数用来设置参数的指定的标志位,并返回更新前的标志字
long unsetf (long)该函数用来清除参数的指定的标志位,并返回更新前的标志字
int width()该函数用来返回当前输入的数据宽度
int width(int)该函数用其参数设置当前输出的数据宽度,并返回更新前的宽度值
char fill()该函数用来返回当前所用的填充符
char fill(char)该函数用来设置当前的填充符为参数给定的字符,并返回更新前的填充符设置浮点数输出精度的成员函数
int (precision)该函数用来返回当前浮点数的有效数字的个数。浮点数的精度是用有效数字个数来表示
int precision(int)该函数用来设置当前浮点数输出时有效数字个数为该函数所制定的参数值,并返回更新的,个数越大,表示精度越高前的值

        以上就是我对C++I/O流——(4)格式化输入/输出(第一节)的理解,希望本篇文章对你有所帮助,也希望可以支持支持博主,后续博主也会定期更新学习记录,记录学习过程中的点点滴滴。如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对C++I/O流的理解,请持续关注我哦!!!

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

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

相关文章

搜维尔科技:SenseGlove Nova 2力反馈技术手套,虚拟培训的沉浸感达到新高度!

SenseGlove Nova 2-虚拟培训的沉浸感达到新高度! 通过集成主动接触反馈,Nova 2 使用户能够在手掌中感知虚拟现实物体的感觉。虚拟训练、研究和多人互动现在感觉比以往更加自然。这项创新增强了与整个手掌接触的任何虚拟物体的真实感。使用第一款也是唯一…

HarmonyOS之sqlite数据库的使用

从API Version 9开始,鸿蒙开发中sqlite使用新接口ohos.data.relationalStore 但是 relationalStore在 getRdbStore操作时,在预览模式运行或者远程模拟器运行都会报错,导致无法使用。查了一圈说只有在真机上可以正常使用,因此这里…

redis原理(四)数据安全之数据持久化

一、将数据持久化至硬盘 1、介绍:Redis是一个基于内存的数据库,它的数据是存放在内存中,内存有个问题就是关闭服务或者断电会丢失。Redis的数据也支持写到硬盘中,这个过程就叫做持久化。 2、Redis持久化选项:Redis提…

Pycharm无法刷新远程解释器的框架: Can‘t get remote credentials for deployment server

在Pycharm上部署项目到远程服务器,有时候需要启动SSH会话,启动的时候发现没反应,且事件日志显示:无法刷新远程解释器的框架: Can’t get remote credentials for deployment server 观察pycharm界面最下边,发现“无默…

Typora概述

Typora概述 1 下载Typora2 Typra大纲视图3 标题4 引用5 列表6 代码7 图片 各位小伙伴想要博客相关资料的话关注公众号:chuanyeTry即可领取相关资料! 作为程序员平时编写笔记和开发文档时一般都使用Markdown格式,为了让你能成为更加专业的程序…

DApp:去中心化的革命与挑战

DApp(去中心化应用)是一种基于区块链技术的应用程序,与传统的中心化应用程序不同,DApp具有去中心化、透明、不可篡改等特性。本文将介绍DApp的前世今生,以及它的优势和未来发展。 DApp的前世可以追溯到区块链技术的出现…

【华为 ICT HCIA eNSP 习题汇总】——题目集1

1、(多选)根据下面所示的命令输出,下列描述中正确的是? A、GigabitEthernet0/0/1 允许VLAN1通过 B、GigabitEthernet0/0/1 不允许VLAN1通过 C、如果要把 GigabitEthernet0/0/1 变为 Access 端口,首先 需要使用命令“un…

Linux系统——yum仓库及NFS共享

目录 一、yum仓库 1.yum简介 2.yum实现过程 3.如何实现安装服务 4.yum配置文件及命令 4.1yum配置文件 4.1.1主配置文件 4.1.2仓库设置文件 4.1.3日志文件 4.2yum命令详解 4.2.1查询 4.2.2yum安装升级 4.2.3软件卸载 4.2.4操作安装历史记录 5.搭建本地yum仓库 5…

vue2使用qiankun微前端(跟着步骤走可实现)

需求:做一个vue2的微前端,以vue2为主应用,其他技术栈为子应用,比如vue3,本文章只是做vue2一套的微前端应用实现,之后解决的一些问题。vue3子应用可以看我另一篇vue3vitets实现qiankun微前端子应用-CSDN博客…

WebKit工程组织与结构随笔

1.WebKit结构 1.1 三个模块 概括地说,WebKit由主要由三个模块组成:JavaScriptCore、WebCore 和 WebKit。WebKit作为了整个项目的名称。 1). WebCore, 2). WebKit, 3). JavaScriptCore。 WebCore:排版引擎核心&…

leetcode-344. 反转字符串、9. 回文数

题目1: 解题方法 直接用reverse()即可 代码: class Solution(object):def reverseString(self, s):""":type s: List[str]:rtype: None Do not return anything, modify s in-place instead."""return s.reverse()如果不…

STC8H8K蓝牙智能巡线小车——3.按键开关状态获取

电路分析 引脚为P37开关未按下时,P37是高电平开关按下时,GND导通,P37是低电平 编程思路 Driver目录中添加KEY.h文件,应包含引脚定义、开关GPIO实例化函数、开关状态获取函数以及当按下和未按下时执行不同的函数(函数…

用Python“自动连发消息”

自动连发消息,基本上C和Python的思路都是不停的模拟“击键”操作,还有一种VB的脚本写法,反成每种语言都能写,更厉害的可以用java做出个GUI界面,先上代码。 一 代码 import pyautogui # 鼠标 import p…

掌握Spring缓存-全面指南与最佳实践

第1章:引言 大家好,我是小黑,咱们今天来聊聊缓存,在Java和Spring里,缓存可是个大角色。咱们在网上购物,每次查看商品详情时,如果服务器都要去数据库里翻箱倒柜,那速度得慢成什么样&…

线性回归理论+实战

线性回归 什么是线性回归 3.1. 线性回归 — 动手学深度学习 2.0.0 documentation (d2l.ai) 模型 损失函数 模型拟合(fit)数据之前,我们需要确定一个拟合程度的度量。 损失函数(loss function)能够量化目标的实际值…

仿真机器人-深度学习CV和激光雷达感知(项目2)day01【项目介绍与环境搭建】

文章目录 前言项目介绍功能与技术简介硬件要求环境配置虚拟机运行项目demo 前言 💫你好,我是辰chen,本文旨在准备考研复试或就业 💫本文内容是我为复试准备的第二个项目 💫欢迎大家的关注,我的博客主要关注…

Unity Shader 的模板测试效果

模板测试是渲染管线中逐片元操作的一环,它的作用是筛选出指定模板的片元,而不符合模板的片元会被舍弃,从而做到一个遮罩的效果。 以下是Unity中实践的一个效果: 场景中可以看出,熊模型和茶壶模型都在差不多的位置&am…

力扣labuladong一刷day61天动态规划最小下降路径

力扣labuladong一刷day61天动态规划最优子结构 一、931. 下降路径最小和 题目链接:https://leetcode.cn/problems/minimum-falling-path-sum/description/ 如下图所示,求最小下降路径,定义dp[i][j]表示从最上面那行的任意位置抵达到nums[i]…

vtk9.3 + Visual Studio2019 + Cmake3.28 win11 上的环境安装(这个过程网上比较多,自己记录下过程加深下印象)

开始 介绍 欢迎来到 VTK!我们建议您首先阅读《VTK book》,这是一本全面的 VTK 指南,涵盖了其功能的所有方面。此外,您可能会发现探索 VTK 示例很有帮助,这是一组有用的参考资料,演示了如何使用 VTK 的不同模…

【电力电子】1 Cuk仿真电路

【仅供参考】 【2022.11西南交大电力电子仿真】 参考博客: [1] Cuk电路的参数计算及仿真_cuk电路参数计算-CSDN博客 目录 1 仿真电路搭建及波形记录 1.1 DCM工作模式 1.2 CCM工作模式 2 PI控制器的设计 1 仿真电路搭建及波形记录 仿真要求:建立输入…