如何在C中使用printf("%sd",x)而不是printf("%5d",x).这里s = 5

FIc*_*_0n 0 c format

所以我真的希望这一切发生.我有一个整数变量,我想使用该变量在我的printf函数中给出间距,但C不允许我这样做,是否有任何解决方法.

#include<stdio.h>
int main(void){
   int s = 5;
   printf("%sd",s);
}
Run Code Online (Sandbox Code Playgroud)

非常感谢提前!

Ste*_*ocy 7

格式说明符中的*表示"我将这个数字作为参数传递."

int s = 5;
printf("--%*d", s, s);
Run Code Online (Sandbox Code Playgroud)

产量

--    5
Run Code Online (Sandbox Code Playgroud)

有详细信息的好页面https://www.tutorialspoint.com/c_standard_library/c_function_printf.htm


Eri*_*hil 5

使用*宽度将导致printf从下一个参数获取宽度,该参数应具有以下类型int:

printf("%*d", s, ValueToBePrinted);
Run Code Online (Sandbox Code Playgroud)

您可以printfC标准中找到有关C功能和其他C功能的信息.在C 2011版本中,格式化的I/O在第7.21节中介绍<stdio.h>.7.21.6.1讨论fprintf,它使用与第7.21.6.3节中相同的格式语法printf和引用printf.第5段讨论了使用*场宽.