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
相关产品推荐
相关产品推荐

