数字在“%”符号后起什么作用?

时间:2019-09-13 07:01:54

标签: c string format

#define TITLES "* %10s * %10s %10s %11s *\n"

是我在越野车C程序中使用的一些预代码,而且我不知道百分号后的数字是什么。

我知道百分号is the string format specifier symbol in C。但是,我只看到百分号后直接跟一个字母,而不是一个数字(s表示字符串,l表示长整数,依此类推)。

I Ctrl + F 遍历了所有this document,并且找不到单个百分号符号实例,后跟任意数字0-9 < / p>

数字在给定的代码位中起什么作用?他们甚至应该在那里吗?

2 个答案:

答案 0 :(得分:2)

  

要打印的最小字符数。如果要打印的值小于此数字,则结果将用空格填充。即使结果较大,该值也不会被截断。

http://www.cplusplus.com/reference/cstdio/printf/

#include <cstdio>

int main() {
    printf(">%10s<", "foo");
}

给予> foo<

答案 1 :(得分:1)

  

数字是指定字段宽度的可选数字字符串。

检查Man page

假设您有printf("<%6s>", "ABC");给出了输出:

<   ABC>

,其中字符串向左移动({3 = 6 - 3)个字符。如果字符串(或数字)的长度等于或大于字段宽度,则输出将与缺少该字段时的输出相同。

如果字段宽度printf("<%-6s>", "ABC");为负,则结果将像这样向右移动

<ABC   >