如何在DevC ++中对齐字符串

问题描述

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

代码

与上一行相比,这些数字-21、3和12可以帮助我们将下一行的文本对齐或设置格式(我想这比尝试用空格隔开字符串更好。我不了解-21的含义,或者我应该如何使用这些数字以所需的方式对齐文本。我认为我的3个字符串需要在以下行下对齐:printf("Patient Name Age Bp Warning Level\n\n"

请注意:我仅需使用此选项即可对齐文本。

解决方法

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

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

,

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

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