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

[原创](Modern C++)现代C++的关键性概念: 流格式化

常用网名: 猪头三
出生日期: 1981.XX.XX
企鹅交流: 643439947
个人网站: 80x86汇编小站
编程生涯: 2001年~至今[共24年]
职业生涯: 22年
开发语言: C/C++、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python
开发工具: Visual Studio、Delphi、XCode、Eclipse、C++ Builder
技能种类: 逆向 驱动 磁盘 文件
研发领域: Windows应用软件安全/Windows系统内核安全/Windows系统磁盘数据安全/macOS应用软件安全
项目经历: 磁盘性能优化/文件系统数据恢复/文件信息采集/敏感文件监测跟踪/网络安全检测

[序言]
在C++的输入输出操作中, 流(stream)是一个重要的概念. 标准库提供了std::cout(用于标准输出)和std::cin(用于标准输入), 它们是基于流的输入输出方式. 对于格式化输出, C++提供了一系列操纵符(Manipulator), 可以用来控制数据的显示格式, 如进制转换、对齐、精度控制等. 现代C++引入了更多的功能, 如 std::bitset 处理二进制数, 以及更灵活的浮点数格式化方法. 

[代码示例]
下面是一个演示如何使用现代C++进行流格式化的代码片段:

#include <iostream>
#include <iomanip>
#include <bitset>int main()
{// 10进制, 8进制, 16进制输出std::wcout << std::dec << 10 << L" " << std::oct << 10 << L" " << std::hex << 10 << std::endl;// 2进制表示std::bitset<32> binary(10);std::wcout << binary << std::endl;// 浮点格式化 方法1(使用 std::fixed 和 std::setprecision)double double_pi{ 3.14159265358979323846 };std::wcout << std::fixed << std::setprecision(4) << double_pi << std::endl;// 浮点格式化 方法2(使用 precision 方法)std::wcout.precision(3);std::wcout << double_pi << std::endl;return 0;
}

1> 整数进制格式化

std::dec:将数值按十进制格式化.
std::oct:将数值按八进制格式化.
std::hex:将数值按十六进制格式化.

2> 二进制格式化

std::bitset<32> binary(10); 创建了一个大小为32位的二进制表示,值为10. 直接std::wcout << binary; 会输出10的二进制表示 00000000000000000000000000001010.

3> 浮点数格式化

std::fixed:指定浮点数输出使用定点格式,而非科学计数法.
std::setprecision(n):控制小数点后的精度.
std::wcout.precision(3); 直接修改流的默认精度设置.

[总结]
本篇文章介绍了C++流格式化的基础用法, 包括整数的进制转换、二进制格式化, 以及浮点数的格式化控制. C++ 提供了丰富的流操纵符, 可以更加灵活地控制输出格式, 从而提高代码的可读性和可维护性. 合理使用这些格式化方式, 可以使终端输出更加直观和美观, 提升用户体验.

http://www.lryc.cn/news/530317.html

相关文章:

  • 《数据可视化新高度:Graphy的AI协作变革》
  • C++并发:设计无锁数据结构
  • 蓝桥杯刷题DAY2:二维前缀和 一维前缀和 差分数组
  • 雷电等基于VirtualBox的Android模拟器映射串口和测试CSerialPort串口功能
  • 四、jQuery笔记
  • 流浪 Linux: 外置 USB SSD 安装 ArchLinux
  • 1.For New TFLite Beginner
  • 吊打同类软件免费又可批量使用
  • MiniMind——跑通项目
  • 单细胞-第五节 多样本数据分析,打分R包AUCell
  • 【零拷贝】
  • 深入解析 C++ 字符串处理:提取和分割的多种方法
  • 计算机组成原理——存储系统(一)
  • Jenkins未在第一次登录后设置用户名,第二次登录不进去怎么办?
  • 论文和代码解读:RF-Inversion 图像/视频编辑技术
  • 大模型培训讲师老师叶梓分享:DeepSeek多模态大模型janus初探
  • 2025最新源支付V7全套开源版+Mac云端+五合一云端
  • 稀疏混合专家架构语言模型(MoE)
  • 比较热门的嵌入式项目
  • 牛客网 除2!(详解)c++
  • 被裁与人生的意义--春节随想
  • ASP.NET Core 中间件
  • Pyecharts之图表样式深度定制
  • git笔记-简单入门
  • Joplin 插件在Vscode中无法显示图片
  • python学opencv|读取图像(四十七)使用cv2.bitwise_not()函数实现图像按位取反运算
  • pandas分组
  • 爬虫基础(三)Session和Cookie讲解
  • 【Super Tilemap Editor使用详解】(十三):快捷键指南(Keyboard Shortcuts)
  • 【Leetcode 每日一题】119. 杨辉三角 II