#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>
数字在给定的代码位中起什么作用?他们甚至应该在那里吗?
答案 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 >