【c】printf()中%占位符的选取和使用: %d, %s等

news/2024/9/23 7:29:09

格式占位符速通

格式占位符 %

  • 格式占位符 % 是在 C/C++ 语言中格式输入函数,如 scanf、printf 等函数中使用。
  • 其意义就是起到格式占位的意思,表示在该位置有输入或者输出。

规定符

  • %d 十进制有符号整数
  • %u 十进制无符号整数
  • %f 浮点数
  • %s 字符串
  • %c 单个字符
  • %p 指针的值
  • %e 指数形式的浮点数
  • %x, %X 无符号以十六进制表示的整数
  • %o 无符号以八进制表示的整数
  • %g 把输出的值按照 %e 或者 %f 类型中输出长度较小的方式输出
  • %p 输出地址符
  • %lu 32位无符号整数
  • %llu 64位无符号整数
  • %% 输出百分号字符本身。

除了格式化说明符之外的一些选项控制

除了格式化说明符之外,printf() 函数还支持一些标志和选项,用于控制输出的精度、宽度、填充字符和对齐方式等。例如:

  • %-10s:左对齐并占用宽度为 10 的字符串;
  • %5.2f:右对齐并占用宽度为 5,保留两位小数的浮点数;
  • %#x:输出带有 0x 前缀的十六进制数。

printf()函数

printf()格式

  • printf() 函数的声明:
    • int printf(const char *format, ...)
  • printf() 函数的调用格式为:
    • printf("<格式化字符串>", <参量表>);
  • format 标签属性是 %[flags][width][.precision][length]specifier
    • 完整格式:< % + 格式 + 宽度 + . + 精度 + 长度类型 + 字母>
      • 注意:宽度是总的占位长度,含精度指定的小数位。
      • 宽度不够补空格。小数位不够,补0
    • 最常见格式:% + specifier
      • 中间省略用默认格式
    • flags:特殊显示格式
      • 左对齐(-), 显示正数+(+), 左边补空格或0, 显示不同进制符号或小数点(#)
    • width:指定宽度,常用数字
      • width的数字:表示要输出的字符的最小数目。
      • 如果输出的值短于该数,结果会用空格填充。
      • 如果输出的值长于该数,结果不会被截断。
      • 注意:如有小数点,小数点占一个位数
      • *:不太常用
    • 小数点,及之后的参数
      • 小数点通常和precision放在一起:.precision
    • .precision:指定精度,常用数字
      • 未指定时,默认为 1。如指定时不带有一个显式值,则假定为 0。
      • 整数(d、i、o、u、x、X):precision 指定了要写入的数字的最小位数。
      • e、E 和 f 说明符:要在小数点后输出的小数位数。
      • g 和 G 说明符:要输出的最大有效位数。
      • s: 要输出的最大字符数。默认情况下,所有字符都会被输出,直到遇到末尾的空字符。
      • c 类型:没有任何影响。
    • length:指定长度类型
      • 常用:h,l,L

示例

  • %m.nf: 指以小数形式输出(输入)浮点型数据,宽度为m,且保留小数点后n位

format属性值详解





参考链接

  • 菜鸟教程:C 库函数 - printf()

END

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

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

相关文章

kingbase——创建truncate函数

写上一篇比较round函数与truncate函数时,顺手试了一下KINGBASE数据库,应该是没有TRUNCATE这个函数,要使用估计得手动创建。创建函数如下 create or replace function sys.truncate(numeric,int4) returns numeric as declarevalue numeric;result numeric; beginvalue := l…

LeetCode Hot100刷题记录-21. 合并两个有序链表

题目描述:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。需要知道的pre-knowledge: list1和list2起初可直接代表两个链表的头节点,无需用另外的变量比如 current 来表示头节点。 思路:准备一个虚拟节点,指向合并完成新链…

Playwright 源码 BrowserType

playwright-java 的 Browser、BrowserContext、Page 挺好理解的,唯独这厮,就有一丢丢 ……playwright-java 的 Browser、BrowserContext、Page 挺好理解的,唯独这厮,就有一丢丢 ……package com.microsoft.playwright;/*** BrowserType provides methods to launch a speci…

安装了跑神经网络的环境,所遇到的问题及解惑1

cuda:12.2 cudnn:8.9.7 tensorflow库:2.17.0(python310_test) {9:37}/home/code/python ➭ python mnist_test.py 2024-09-06 09:39:29.473128: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:9261] Unable to register cuDNN factory: Attempting to registe…

记一次阿里云搭建K8S在恢复镜像快照之后etcd一个节点无法启动问题

环境查看 系统环境# cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) # uname -a Linux CentOS7K8SMaster01005101 3.10.0-1160.114.2.el7.x86_64 #1 SMP Wed Mar 20 15:54:52 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux软件环境 # kubectl version Client Vers…

无风扇嵌入式工控机的技术优势

无风扇嵌入式工控机专为优先考虑低维护和可靠性的应用而设计。这些工控机是不间断性能至关重要的行业的完美选择,因为它们消除了与风扇相关的故障风险。通过消除对风扇的需求,无风扇工控机提供了无缝且可靠的性能,不会受到潜在风扇故障或故障的影响。此外,无风扇嵌入式工控…

哎呀,当时怎么没有想到

在我们的测试工作中,是不是经常遇到这样的情形,发生了线上问题,产品、研发或者测试同学一拍脑袋:当时怎么没有想到,怎么给漏掉了呢?明明是一个非常简单的事情,用大拇指都能想到的验证场景,为何当时就漏测了呢?但实际情况是,逃逸到线上的缺陷,疑难杂症式的极端异常的…

Optuna发布 4.0 重大更新:多目标TPESampler自动化超参数优化速度提升显著

Optuna这个备受欢迎的超参数优化框架在近期发布了其第四个主要版本。自2018年首次亮相以来,Optuna不断发展,现已成为机器学习领域的重要工具。其用户社区持续壮大,目前已达到以下里程碑:10,000+ GitHub星标 每月300万+ 下载量 16,000+ 代码库使用 5,000+ 论文引用 18,000+ …