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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打印n个空格字符 - (f)printf格式相关的知识,希望对你有一定的参考价值。

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

我不能用min。宽度空白填充"\"%-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读取尾随作为打印下一个参数的字段的宽度,另一个空格字符。

以上是关于打印n个空格字符 - (f)printf格式的主要内容,如果未能解决你的问题,请参考以下文章

格式化输出printf浅解

printf的格式

awk-printf 语句自定义函数

使用printf后如何打印一个int和一个带空格的字符串?

打印ASCII码

格式说明符对于字符串的妙用