网站首页 > 技术文章 正文
不同语言格式串五花八门,究其本质,无非是如何处理格式串和变量对应关系。
示例: 输出右对齐宽度为8个字符整形数据
- C/ObjC/Java/Ruby/Go
- %8d
直接依赖库函数解析格式串,区分格式符前缀%、对齐长度、对齐方向、类型等,做填充、对齐操作。 - C++
- std::setw(8)和std::right
C++ 输出流对象提供方法,设置对齐长度和对齐方向。 - C#
- "{0,8:D}"
和C语言风格很像,不过用新的展示格式,冒号分隔。 - Python
- {num:8d}
最接近C语言风格。 - Rust
- {:8}
- VB.NET
- String.Format("{0,8}", num)
- Pascal
- 整型a输出宽度为8:a:8
格式串语法
- C语言: %[flag][min width][.precision][length]format
- min width/precision/length在不同语境部分可选或要忽略
- Java: %[arguments_index$][flags][field width][.precision]format
浮点数小数位
如下示例保留两位小数:
- 仓颉:float_var.format(".2")
- C/ObjC/C++: "%.2f"
- Pascal:float_var:0:2
不同进制
- C语言 %o和%x代表八进制和十六进制。
- C# {:X}代表十六进制,例如#34;{12:X}" 输出C.
带前缀的格式串
- C/ObjC/C++ 允许用%#o和%#x分别代表加前缀的八进制和十六进制。
即,15的%#o格式是017, %#x格式为0xf. 当然,%#X对应为0XF.
格式串大小写
- C语言%g/%e代表浮点数,大写%G和%E功能一样,但表达指数的E用大写,而非前面的小写。
看起来另类的格式串
- C语言“%8%”会输出一个百分号%, 且左侧有7个空格。
- C语言%n代表已经输出的字节个数。
printf("hello我%n\n", &b); // 假设字符串UTF-8编码,b == 8
格式串补零
- C语言整数格式符%d/%o/%x/%u也可指定精度代表最少位数,最终输出位数不足,会补0.
printf("%.2d/%.2d/%.4d\n", 2, 12, 12345); // 02/12/12345 - %02d和%.2d一样可以补0.
宽度和精度可被指定?
- C语言可以动态指定格式串宽度和精度:
printf("%.*d\n", 2, 1); // 输出宽度是2,输出01,宽度2也可以用变量传入
废弃的格式符
- C语言早期,%D指代%ld, %O指代%lo, %X指代%lx, 但后来被发现其实%X也可以指代十六进制大写形式,后来这三个大写格式符被抛弃了。
若文章对您有帮助,欢迎关注 程序员小迷 。助您在编程路上越走越好!
微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。
我是 程序员小迷 (致力于C、C++、C#、Android、iOS、Java、Kotlin、Objective-C、Swift、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。
- 上一篇: 「C初级」.浮点数的困惑
- 下一篇: C|整数、浮点数的向上、向下溢出
猜你喜欢
- 2025-01-18 FX3U小数运算
- 2025-01-18 JAVA中的浮点数与二进制
- 2025-01-18 「创新班」007. float()函数 -- 把数字字符串(或整数)转为浮点数
- 2025-01-18 谈谈小数的表示方法之定点数
- 2025-01-18 浮点数/小数 的6种舍入方式
- 2025-01-18 NOI / 1.1编程基础之输入输出
- 2025-01-18 S7-200 SMART 数据类型(上)
- 2025-01-18 西门子PLC数据类型——浮点数
- 2025-01-18 畅谈计算机整数,浮点数存储和运算
- 2025-01-18 C|整数、浮点数的向上、向下溢出
- 05-09Linux 安装Oracle11.2.0.4 (静默安装法)
- 05-09Oracle 10g安装64位图解流程(Oracle 10g安装64位图解流程图怎么画)
- 05-09Centos7命令行安装Oracle11g(centos7安装oracle11g数据库)
- 05-09Vite 的实现原理,确实很巧妙(深入vite原理)
- 05-09微信小程序中使用云函数进行开发(微信小程序创建云函数)
- 05-09详细讲解npm install命令执行,都干了哪些事情?
- 05-09如何在 Node.js 中使用 .env 文件管理环境变量 ?
- 05-09离线环境下运行Vue项目(离线安装vue-cli)
- 最近发表
-
- Linux 安装Oracle11.2.0.4 (静默安装法)
- Oracle 10g安装64位图解流程(Oracle 10g安装64位图解流程图怎么画)
- Centos7命令行安装Oracle11g(centos7安装oracle11g数据库)
- Vite 的实现原理,确实很巧妙(深入vite原理)
- 微信小程序中使用云函数进行开发(微信小程序创建云函数)
- 详细讲解npm install命令执行,都干了哪些事情?
- 如何在 Node.js 中使用 .env 文件管理环境变量 ?
- 离线环境下运行Vue项目(离线安装vue-cli)
- 《小鑫发现》之GraphQL框架Prisma
- 如何写一个webpack插件(一)(webpack常用插件和loader)
- 标签列表
-
- cmd/c (64)
- c++中::是什么意思 (83)
- 标签用于 (65)
- 主键只能有一个吗 (66)
- c#console.writeline不显示 (75)
- js判断是否空对象 (63)
- pythoncase语句 (81)
- es6includes (73)
- sqlset (64)
- windowsscripthost (67)
- apt-getinstall-y (86)
- node_modules怎么生成 (76)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- js数组插入 (83)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- outofmemoryerror是什么意思 (64)
- eacces (67)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)