kan*_*eki 4 c precision formatting printf padding
我很确定没有办法做到这一点,但我很想知道,所以这里......
假设我从用户那里得到了几个int值,并且我知道第一个值是最大的.在打印其余数字时,我可以使用第一个int值的长度作为填充吗?
浏览论坛我发现你可以确定这样的int(n)的长度:
l = (int) log10(n) + 1;
Run Code Online (Sandbox Code Playgroud)
使用5的填充打印看起来像:
printf("%5d", n);
Run Code Online (Sandbox Code Playgroud)
所以我想知道的是,是否有办法使用l而不是5 ...
谢谢!
这样做:
int n = <some value>;
int i = (int) log10(n) + 1;
printf("%*d", i, n);
Run Code Online (Sandbox Code Playgroud)
在*用作用于占位符宽度作为参数来传递printf().