【问题标题】:On printf, fill content with char size在 printf 上,用 char 大小填充内容
【发布时间】:2014-03-16 02:14:50
【问题描述】:

假设我有以下变量:

字符名称[20];

让我们说它的内容是这样的:

strcpy(name, "test");

如何打印全部 20 个字符(在\0 之后打印空格)?

当我打印一个浮点数时,默认情况下它会在点之后填充一些零(即 1.3000)。

我可以用字符串做类似的事情吗?

我尝试使用 %.*s 并将其大小作为第一个参数传递,但它不起作用。

谢谢。

【问题讨论】:

  • 您可以使用std::setw。另请注意,. 用于精度,而不是宽度。
  • 一定要用printf吗?
  • printf("%-20s", name);
  • @chris, std::setw 之前好像填了内容.. 我想在之后填。

标签: c++ c


【解决方案1】:

对于C++,看起来std::leftstd::setw 的组合可以满足您的需求。我在示例中添加了std::setfill 以显示填充的字符:

std::cout << std::setw(20) <<  std::left << std::setfill('*') << name  <<  std::endl ;

对于带有printfC,正如 Matt 指出的那样,以下方法将起作用:

printf("%-20s\n", name) ;

【讨论】:

    猜你喜欢
    • 2011-05-07
    • 2014-01-19
    • 2021-05-19
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多