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

C语言查漏补缺:占位符篇

占位符篇

    • 1. 整数类型
    • 2. 字符类型
    • 3. 浮点数类型
    • 4. 指针类型
    • 5. 字符串
    • 6. 修饰符

1. 整数类型

  • %d / %i:用于 int(有符号十进制整数)。
    int num = -42;
    printf("%d", num);  // 输出: -42
    
  • %u:用于 unsigned int(无符号十进制整数)。
    unsigned int num = 42;
    printf("%u", num);  // 输出: 42
    
  • %o:无符号八进制(octal)。
  • %x / %X:无符号十六进制(hex,x 小写,X 大写)。

2. 字符类型

  • %c:用于 char(单个字符)。
    char ch = 'A';
    printf("%c", ch);  // 输出: A
    
  • %hhu:用于 unsigned char(C99 引入)。
  • %hhd:用于 signed char(C99 引入)。
  • 对于 char 类型,推荐用 %d 打印 ASCII 码,或用 %c 打印字符本身。

3. 浮点数类型

  • %f:用于 float / double(默认保留 6 位小数)。

    double pi = 3.141592;
    printf("%f", pi);  // 输出: 3.141592
    
  • %e / %E:科学计数法(e 小写,E 大写)。

  • %g / %G:自动选择 %f%e(更紧凑的格式)。

  • %.nf 指定保留 n 位小数(n 是任意正整数)。

  • 默认情况下,%f 会保留 6 位小数

    printf("%f\n", num);  // 输出: 3.141593(默认 6 位)
    
  • 四舍五入规则:

    • 如果第 n+1 位 ≥ 5,则第 n 位会 进位
      printf("%.3f\n", 1.2345);  // 输出: 1.235(5 进位)
      printf("%.3f\n", 1.2344);  // 输出: 1.234(4 舍去)
      
  • 动态指定小数位数(C99 支持)**
    可以使用 * 占位符,并通过参数动态指定小数位数:

    int precision = 3;
    printf("%.*f\n", precision, 3.141592);  // 输出: 3.142
    
  • 控制总宽度 + 小数位数**

  • %m.nfm 是最小总宽度(包括小数点),n 是小数位数。

  • 如果数字位数不足,会 右对齐 并用空格填充:

    printf("%8.3f\n", 3.14);  // 输出: "   3.140"(总宽度 8,右对齐)
    printf("%-8.3f\n", 3.14); // 输出: "3.140   "(左对齐)
    
    1. 科学计数法(%e / %E
    printf("%.2e\n", 3141.592);  // 输出: 3.14e+03(保留 2 位小数)
    printf("%.4E\n", 0.000123);  // 输出: 1.2300E-04(大写 E)
    

总结:

需求格式说明符示例
默认 6 位小数%f3.141593
固定 n 位小数%.nf%.2f3.14
动态 n 位小数%.*f%.*f, 33.142
科学计数法%.ne / %.nE%.2e3.14e+00
控制总宽度 + 小数位数%m.nf%8.3f空格空格空格3.142

4. 指针类型

  • %p:用于 指针地址(通常以十六进制打印)。
    int x = 10;
    printf("%p", (void*)&x);  // 输出类似: 0x7ffd42a3bc14
    

5. 字符串

  • %s:用于 char*(C 风格字符串)。
    char str[] = "Hello";
    printf("%s", str);  // 输出: Hello
    

6. 修饰符

格式说明符可以结合 长度修饰符 使用,如:

  • %hdshort int
  • %ldlong int
  • %lldlong long int
  • %zdsize_t(用于 sizeof 返回的类型)

文章转载自:

http://NnB87ozh.ccjhr.cn
http://zIKmktX5.ccjhr.cn
http://XPRn5Xtx.ccjhr.cn
http://KE1Bwbfe.ccjhr.cn
http://xI2YxSAb.ccjhr.cn
http://UZqX5Ul5.ccjhr.cn
http://GFm8SPp2.ccjhr.cn
http://SMqWSr5c.ccjhr.cn
http://VWRsVz9E.ccjhr.cn
http://GFgpDpVZ.ccjhr.cn
http://07DEy76d.ccjhr.cn
http://dB4zp3mq.ccjhr.cn
http://zapuIZyI.ccjhr.cn
http://aG2juIN7.ccjhr.cn
http://Hho7u9MD.ccjhr.cn
http://2yuSv4Ur.ccjhr.cn
http://84UfMC9b.ccjhr.cn
http://u2EkAwwM.ccjhr.cn
http://CTofzH8z.ccjhr.cn
http://KPAcyIXL.ccjhr.cn
http://GA6I7BUn.ccjhr.cn
http://qJ1TaPh3.ccjhr.cn
http://b40haHoJ.ccjhr.cn
http://ddiJFiC1.ccjhr.cn
http://r4Pe9GZi.ccjhr.cn
http://pFOTKXw3.ccjhr.cn
http://gW1caSRW.ccjhr.cn
http://f6yiXgBU.ccjhr.cn
http://NGgUGEyX.ccjhr.cn
http://yi28V65A.ccjhr.cn
http://www.dtcms.com/a/116260.html

相关文章:

  • JavaScript中的Proxy详解
  • CUDA GPU 学习资源
  • 第三方软件测试服务公司分享:功能测试和性能测试的区别与联系
  • 小型园区组网图
  • AlDente Pro for Mac电脑 充电限制保护工具
  • 解码 __all__ - 模块接口的守护者
  • Django SaaS案例:构建一个多租户博客应用
  • SQL LIKE 语句详解
  • I²C、SPI、UART、CAN 通信协议详解
  • docker配置redis容器时配置文件docker-compose.yml示例
  • deepseek对openGauss 6.0启动日志的分析与处理
  • TCP/IP五层协议
  • 销售心理学工具包:100个可复用的话术模板与案例库-第一部分:销售心理学核心理论与工具-1.2情感共鸣构建:镜像神经元理论与情绪同步话术设计
  • 【教程】MacBook 使用 iTerm2 连接跳板机和开发机
  • 增益调度控制 —— 理论、案例与交互式 GUI 实现
  • LeetCode Hot100 刷题笔记(3)—— 链表
  • Python作业2 蒙特卡罗方法手搓图形
  • 使用 VIM 编辑器对文件进行编辑
  • 路由器学习
  • 【C++奇遇记】C++中的进阶知识(多态(一))
  • 使用MySQL时出现 Ignoring query to other database 错误
  • NO.65十六届蓝桥杯备战|基础算法-贪心推公式排序|哈夫曼编码|拼数|奶牛玩杂技|哈夫曼编码|合并果子(C++)
  • 接口自动化学习二:session自动管理cookie
  • 网络协议:TCP,UDP详细介绍
  • Windows Flip PDF Plus Corporate PDF翻页工具
  • MySQL数据库精研之旅第五期:CRUD的趣味探索(中)
  • py文件打包为exe可执行文件,涉及mysql连接失败以及找不到json文件
  • 使用PyQt5绘制水波浪形的柱状显示流量—学习QTimer+QPainterPath
  • Logo语言的区块链
  • Compose组件转换XML布局1.0