是否有任何setfill()替代C?

Don*_*alo 4 c c++ output-formatting

在C++中:

int main()
{
    cout << setfill('#') << setw(10) << 5 << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出:

#########5
Run Code Online (Sandbox Code Playgroud)

setfill()C 还有其他选择吗?或者如何在C中执行此操作而无需手动创建字符串?

Ben*_*Ben 5

 int x= 5; 
 printf("%010d",x);
Run Code Online (Sandbox Code Playgroud)

将输出:0000000005

现在如果你真的想要'#'而不是'0',你必须在字符串中手动替换它们.

也许 :

char buf[11], *sp = buf; 
snprintf(buf, 11, "%10d", x); 
while( (sp = strchr(sp, ' ')) != '\0'){ *sp = '#'; }
puts(buf); 
Run Code Online (Sandbox Code Playgroud)