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

C++ 打印n个空格字符-(f)打印f格式,c++,c,printf,C++,C,Printf,有没有办法打印一定数量的空白字符 我不能使用最小宽度空白填充“\”%-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, tr

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

我不能使用最小宽度空白填充
“\”%-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, ' ');
其中前导和尾随为整数。
仅供使用

printf ( "\"%s\"%*c", str, trailing, ' ');
类似的修改仅适用于引线

编辑
宽度说明符允许使用星号提供可变宽度。
在本例中,%*c告诉printf获取下一个参数,并将其用作字符的宽度。

它首先读取前导字符,并将其用作打印字符(空格字符)的字段宽度。然后打印一个报价\“。%s格式打印下一个参数str。将打印另一个引号,然后%*c再次读取尾随作为要打印下一个参数的字段的宽度,另一个空格字符

正是我需要的!非常感谢你。请,作为答案发布。解释一下这是如何工作的会很好,我现在只是盯着随机字符看。