如何将参数n传递给printf("%nd",some_int);

nob*_*ody 10 c linux format

我们都知道基于C语言的printf("%11d",some_int); 意味着在11个字符的字段内对齐,但是如果我想用动态变量替换这个常量11,我该怎么办?

Fré*_*idi 18

您可以使用该*字符在其自己的参数中指定字段宽度:

printf("%*d", some_width, some_int);
Run Code Online (Sandbox Code Playgroud)


Ign*_*ams 6

您将阅读该printf(3)手册页并遇到以下内容:

代替十进制数字串之一可写"*"或"*M $"(对于一些十进制整数m)至指定的字段宽度在下一个参数给出,或者,分别在第m个参数,它必须的属于int类型.