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

C语言中 %* 的用法总结


C语言中 %* 的用法总结

一、scanf 中的 %*
  • 作用跳过输入字段,读取数据但不存储到变量。
  • 语法%*[格式]
    • 示例格式%*d(跳过一个整数)、%*s(跳过一个字符串)。
  • 适用场景
    • 输入中有冗余字段(如日期中的“日”不需要)。
    • 处理复杂格式时忽略部分数据。
  • 示例
    int a, b;
    scanf("%d %*s %d", &a, &b); 
    // 输入 "42 Alice 99" → 存储 a=42, b=99,跳过 "Alice"
    

二、printf 中的 %*
  • 作用动态控制输出的宽度或精度(通过参数传递值)。
  • 语法
    格式符参数顺序作用
    %*d(宽度, 数值)按动态宽度输出整数
    %.*f(精度, 数值)按动态精度输出浮点数
    %*.*f(宽度, 精度, 数值)动态控制宽度和精度
  • 规则
    • 宽度不足:自动扩展,不截断数值。
    • 负宽度:表示左对齐(如 %-5d10 )。
  • 示例
    int width = 6, precision = 2;
    printf("|%*d|", width, 10);      // 输出 |    10|
    printf("|%.*f|", precision, 3.1415); // 输出 |3.14|
    printf("|%*.*f|", 6, 2, 3.1415); // 输出 |  3.14|
    

三、关键区别与易错点
场景scanf%*printf%*
核心作用跳过输入字段动态控制输出格式
参数顺序无需额外参数必须按顺序传参(如先宽度后值)
常见错误输入格式不匹配导致跳过失败参数顺序错误(如 %*d 写成 %d*
特殊符号负宽度表示左对齐(%-5d

四、记忆口诀
  • scanf*:读入数据跳过不留,省去变量不用愁。
  • printf*:宽度精度动态调,参数顺序别颠倒。

五、对比示例
函数代码输入/输出结果
scanfscanf("%d-%*d-%d", &a, &b);输入 2023-10-05a=2023, b=5
printfprintf("%*d", 5, 10);输出 10(宽度5)
printfprintf("%.*f", 2, 3.1415);输出3.14(精度2)

总结%*scanf 中是“跳过输入”,在 printf 中是“动态格式控制”。核心区别在于参数传递和作用方向(输入 vs 输出)!

相关文章:

  • 使用AI创建流程图和图表的 3 种简单方法
  • 【Gin-Web】Bluebell社区项目梳理5:投票功能分析与实现
  • 详解单例模式、模板方法及项目和源码应用
  • 浅识Linux的DMA拷贝、MMAP映射与sendfile原理
  • 大模型安全问题详解(攻击技术、红队测试与安全漏洞)
  • Scrapy:Downloader下载器设计详解
  • 学习笔记01——《深入理解Java虚拟机(第四版)》第二章
  • C++/JavaScript ⭐算法OJ⭐下一个排列
  • Qt中QRadioButton的样式设置
  • ChatGPT平替自由!DeepSeek-R1私有化部署全景攻略
  • 八股文实战之JUC:静态方法的锁和普通方法的锁
  • 进程间通信中间件---ZeroMQ
  • Verilog define预处理命令
  • AI 大模型:点亮乡村振兴的新曙光
  • AWS S3深度解析:十大核心应用场景与高可用架构设计实践
  • sh脚本把服务器B,服务器C目录的文件下载到服务器A目录,添加开机自启动并且一小时执行一次脚本
  • 蓝桥与力扣刷题(蓝桥 交换瓶子)
  • ctfshow——phps源码泄露
  • Java APM如何Profiling:使用火焰图多维度分析应用性能瓶颈
  • Java Idea配置问题
  • 龚正市长调研闵行区,更加奋发有为地稳增长促转型,久久为功增强发展后劲
  • “大型翻车现场”科技满满,黄骅打造现代化港口和沿海新城典范
  • 魔都眼|锦江乐园摩天轮“换代”开拆,新摩天轮暂定118米
  • 杞支雅男评《1517》|放眼世界,立足德国
  • 透视社会组织创新实践中的花开岭现象:与乡村发展的融合共进
  • 北京13日冰雹过后,已受理各险种报案近3万件