首页 > 解决方案 > 如何格式化输出文本,使不同长度的可变字符串跨多行排列?

问题描述

我正在尝试将文本打印到输出文件,并且我需要我的输出文件与正确的格式完全匹配。

我需要这样做,以便当我的程序的输出与正确的输出进行比较时,(在这里谈论大输出文件)输出文件的简单字符串比较应该将它们标记为完全相同。

这是 EXACT 预期输出的示例:

| Item   1234 | CALCULATOR           | $   0.45 |
| Item   5678 | USA_FLAG             | $  10.99 |
| Item   9012 | WITCH_BROOM          | $  18.00 |

请注意,这种格式在每个字符串之后和双数字之前有不同数量的空格,但它们仍然能够完美地对齐。那么如何输出这种格式呢?

我假设关于 fprintf() 有一些我不知道的东西,但同样,我不知道 sooooooooooooooo

标签: cfile-ioformatting

解决方案


您可以在 printf 格式字符串中指定标志和宽度,例如

printf( "%10s", "test" )如果参数较短,将打印 10 个字符并用空格填充。例如(为空格添加点)

test......

您还可以指定理由,例如

printf( "%-10s", "test" )

......test


推荐阅读