You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C语言使用printf如何设置15字符列宽对齐表格最后一列?

解决思路

你当前的代码有两个核心问题导致对齐失效:

  • 表头输出逻辑错误:将三个表头拼接为同一个字符串后用%-15s格式化,相当于只为整行表头分配了15个字符的宽度,完全不符合三列各占15字符的要求
  • 数值输出未指定固定列宽:仅手动加空格补位,当浮点数整数部分位数变化时,整体列宽会浮动,无法对齐

正确实现方案

直接用printf自带的固定宽度格式化语法,每一列单独指定15字符左对齐即可,不需要手动拼接表头、不需要手动补空格:

// 表头:每列单独用%-15s指定左对齐、占15字符
printf("%-15s%-15s%-15s\n", "Fahrenheit", "Celsius", "Kelvin");
// 分割线:三列各15字符,总共45个'-'即可
printf("---------------------------------------------\n");
// 数值:每列单独指定固定宽度,浮点数用%-15.2f同时指定宽度和小数位数
printf("%-15d%-15.2f%-15.2f\n", fahrenheit, celsius, kelvin);

语法说明

%-15.2f的含义是:输出浮点数保留2位小数,整体左对齐,固定占15个字符宽度,不足的部分自动在右侧补空格,不管数值整数部分是1位还是3位,列宽都不会变化,自然能和表头完美对齐。

内容的提问来源于stack exchange,提问作者iwanttopassmyfyp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 04:27:00