当前位置: 首页 > news >正文

C++ ios_base类

目录

一,_Fmtfl 格式

二,width 格式

三,precision 格式

四,sync_with_stdio函数


ios_base类是输入输出流的一个基础类。

The classios_baseis a multipurpose class that serves as the base class for all I/O stream classes.

一,_Fmtfl 格式

这个成员的每一位,都用来控制流的一个属性

初始化:_Fmtfl = skipws | dec; 初始值是513

读取:flags()

替换:flags(fmtflags _Newfmtflags)

加格式:setf(fmtflags _Newfmtflags)

在给定的mask内设置格式:setf(fmtflags _Newfmtflags, fmtflags _Mask)

相关库函数

_NODISCARD fmtflags __CLR_OR_THIS_CALL flags() const { return _Fmtfl; } fmtflags __CLR_OR_THIS_CALL flags(fmtflags _Newfmtflags) { // set format flags to argument const fmtflags _Oldfmtflags = _Fmtfl; _Fmtfl = _Newfmtflags & _Fmtmask; return _Oldfmtflags; } fmtflags __CLR_OR_THIS_CALL setf(fmtflags _Newfmtflags) { // merge in format flags argument const ios_base::fmtflags _Oldfmtflags = _Fmtfl; _Fmtfl |= _Newfmtflags & _Fmtmask; return _Oldfmtflags; } fmtflags __CLR_OR_THIS_CALL setf( fmtflags _Newfmtflags, fmtflags _Mask) { // merge in format flags argument under mask argument const ios_base::fmtflags _Oldfmtflags = _Fmtfl; _Fmtfl = (_Oldfmtflags & ~_Mask) | (_Newfmtflags & _Mask & _Fmtmask); return _Oldfmtflags; } void __CLR_OR_THIS_CALL unsetf(fmtflags _Mask) { // clear format flags under mask argument _Fmtfl &= ~_Mask; }

示例:

int main() { cout << cout.flags() << endl; cout.setf(ios::unitbuf); cout << cout.flags() << endl; cout.unsetf(ios::unitbuf); cout << cout.flags() << endl; return 0; }

输出

513
515
513

其中ios::unitbuf是常数2

其他的 _Fmtfl 格式:

二,width 格式

width用来控制整数输出的宽度,即占几个字符

相关库函数

_NODISCARD streamsize __CLR_OR_THIS_CALL width() const { return _Wide; } streamsize __CLR_OR_THIS_CALL width(streamsize _Newwidth) { // set width to argument const streamsize _Oldwidth = _Wide; _Wide = _Newwidth; return _Oldwidth; }

示例:

int main() { for (int i = 0; i < 100; i++) { if (i % 10 == 0)cout << endl; cout.width(3); cout << i; } return 0; }

三,precision 格式

precision用来控制浮点数的输出精度

相关库函数

_NODISCARD streamsize __CLR_OR_THIS_CALL precision() const { return _Prec; } streamsize __CLR_OR_THIS_CALL precision(streamsize _Newprecision) { // set precision to argument const streamsize _Oldprecision = _Prec; _Prec = _Newprecision; return _Oldprecision; }

示例:

int main() { cout.precision(3); cout << 1.414213562; return 0; }

输出:1.41

四,sync_with_stdio函数

Sets whether the standard C++ streams are synchronized to the standard C streams after each input/output operation.

相关库函数

static bool __CLRCALL_OR_CDECL sync_with_stdio( bool _Newsync = true) { // set C/C++ synchronization flag from argument _BEGIN_LOCK(_LOCK_STREAM) // lock thread to ensure atomicity const bool _Oldsync = _Sync; _Sync = _Newsync; return _Oldsync; _END_LOCK() }

其中_Sync是私有静态成员

__PURE_APPDOMAIN_GLOBAL static bool _Sync;

这表明所有的流共享一个_Sync成员。

http://www.jsqmd.com/news/1206402/

相关文章:

  • PCB布线基础与过孔使用技巧
  • Codex CLI 2026实战指南:终端AI工具链的稳定性与国产模型集成
  • [C++20/OOP] 从虚表底层到对象切片:现代 C++ 面向对象设计的“避坑指南”与黄金法则
  • 多平台直播录制架构解析:StreamCap如何通过模块化设计解决40+平台兼容性挑战
  • Adobe-GenP 3.0:终极Adobe Creative Cloud许可证验证解决方案
  • SPI 通信:4 线盲操作 vs 5 线带忙信号,差一根线差多远
  • 2026北京朝阳翡翠回收靠谱门店推荐-高效透明保值 - 全国二奢机构参考
  • Blender到Unreal Engine的Datasmith导出插件实战指南:高效实现3D工作流无缝对接
  • 打印机共享与连接
  • WarcraftHelper:让经典魔兽争霸III在现代硬件上完美重生的终极兼容性优化指南
  • 戴森球计划FactoryBluePrints:从星际新手到工厂大师的蓝图宝库
  • SD-PPP Photoshop AI插件终极指南:5分钟免费上手,让AI绘图变简单
  • 如何高效实现Wagtail多语言内容管理:实战指南
  • 终极指南:让2008-2017年旧款Mac焕发新生的完整教程
  • 终极指南:如何免费实现城通网盘高速下载
  • 单端信号与差分信号:原理对比与应用选择指南
  • 为什么你的Claude生成的用户故事总被开发拒收?揭秘3类隐性语义断层及4种结构化修复公式
  • 2026年7月兰州黄金回收实地测评卖金避坑完整攻略 - 余生黄金回收
  • 完整课堂实录:高效舞蹈自学从理解动作原理到肌肉记忆
  • 深蓝词库转换:3分钟掌握跨平台输入法词库同步技巧
  • 中小企业绿色能碳管理平台推荐
  • 如何让单机游戏变身多人派对:Nucleus Co-Op分屏工具终极指南
  • Knowledge社区版与企业版对比:如何选择适合的知识管理系统
  • 电脑风扇狂转、屏幕黑屏不开机?5步零成本自查修复
  • 告别 Prompt“碰运气”!2026 年大模型时代底层控制术:Guided Decoding 与开源神器 Outlines 实战指南
  • 3步轻松搞定AcFun视频下载:免费开源工具AcFunDown实用指南
  • 终极指南:如何让Video DownloadHelper配套应用VdhCoApp完美工作
  • 英伟达LocateAnything 3B模型:开放词汇多模态视觉定位实战
  • 如何永久保存生活痕迹:个人数据留存与AI记忆管理的完整指南
  • RxJS Marble Testing:可视化异步流测试指南