【问题标题】:How to align strings in DevC++如何在 Dev C++ 中对齐字符串
【发布时间】:2021-02-02 23:24:10
【问题描述】:

在其中一项作业中,我们有一个类似fprintf(output, "%-21s%3d%12.1f\n", name, age, temperature);的代码

这些数字 -21、3 和 12 应该有助于我们对齐或格式化下排的文本与上排的文本(我想这被认为是一个比尝试用空格分隔字符串更好的选择)。我不明白 -21 的含义或我应该如何使用这些数字以我想要的方式对齐文本。我认为我的 3 个字符串需要在以下行下对齐:printf("Patient Name Age Bp Warning Level\n\n"

请注意:我只能使用此选项来对齐文本。

【问题讨论】:

  • 从阅读man page开始。
  • 您能否提供至少两个要格式化的输入元组示例?这将有助于解释不同格式的行为。此外:您的问题是仅关于 %-21s 还是您也在询问有关 %3d%12.1f 的信息?
  • 我认为我的 3 个字符串需要以下行对齐:printf("Patient Name Age Bp Warning Level\n\n"
  • @dot-combubble 所以在问题中包含此信息。您是否必须“玩”格式字符串"%-21s%3d%12.1f\n" 更改数字并添加空格才能满足该要求?
  • 是的,我需要调整数字以适应我在顶部声明中的间距,但没有空格。好的,我会更新我的问题。

标签: c dev-c++


【解决方案1】:

格式说明符之前的数字是字段宽度。 它是一个可选的十进制数字字符串(第一个数字非零),指定最小字段宽度。如果转换后的值的字符数少于字段宽度,则会在左侧(或右侧,如果已给出负值)填充空格。

因此,在您的情况下,name 将在宽度为 21 符号的字段中左对齐。 agetemperature 将占据至少 3 和 12 个符号,并在需要时在左侧填充空格。

【讨论】:

    【解决方案2】:

    数字 21、3 和 12 是字段宽度说明符。例如 21 表示如果值小于 21 个字符,则用空格填充。 - 是一个修饰符,表示填充应该左对齐(通过在右端填充空格),而不是默认的右对齐行为。

    参考: https://linux.die.net/man/3/fprintf

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-29
      • 2018-07-12
      相关资源
      最近更新 更多