【问题标题】:Print n space characters -(f)printf format打印 n 个空格字符 -(f)printf 格式
【发布时间】:2014-10-11 10:29:37
【问题描述】:

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

我不能使用分钟。宽度空白填充"\"%-5s\"",因为它会导致"str "...,我需要输出"str" ...

我知道我可以用笨办法做到这一点:

int len = strlen (str);

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

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

【问题讨论】:

  • 正是我需要的!非常感谢。请张贴作为答案。

标签: c++ c printf


【解决方案1】:

试试

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

前导和尾随是 int。
仅用于尾随

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

类似的修改只能用于前导

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

【讨论】:

  • 解释一下它的工作原理会很好,我现在只是盯着随机字符。
猜你喜欢
  • 1970-01-01
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 2018-02-17
  • 2022-01-18
  • 2014-10-25
  • 2022-01-05
  • 1970-01-01
相关资源
最近更新 更多