打印n个空格字符-(f)printf格式

Print n space characters -(f)printf format

本文关键字:printf 格式 空格 字符 打印      更新时间:2023-10-16

有没有办法打印一定数量的空白字符?

我不能使用最小宽度的空白填充""%-5s"",因为它会导致"str "...,并且我需要输出"str" ...

我知道我可以用一种愚蠢的方式:

int len = strlen (str);
printf ("/"%s/"", str);
for (int i = len - 5; i > 0; i--)
   printf (" ");

但我希望有更有效的解决方法。

尝试

printf ( "%*c"%s"%*c", leading, ' ', str, trailing, ' ');

其中前导和尾随是int。
对于尾随,仅使用

printf ( ""%s"%*c", str, trailing, ' ');

仅引导也可以进行类似的修改

编辑
宽度说明符允许使用星号来提供可变宽度
在这种情况下,%*c告诉printf获取下一个参数,并将其用作字符的宽度
它最初读取前导,并将其用于打印字符(空格字符)的字段宽度。然后打印一个引号\"。%s格式打印下一个参数str。打印另一个引号,然后%*c再次读取尾部作为打印下一参数的字段宽度,另一个空格字符。