我想知道如何使用scanf()
允许用户输入他想要给出答案的小数位数,以及如何将此变量输入printf
格式符。例如
printf("The answer is %.(variable wanted here)f", answer);
答案 0 :(得分:6)
如果您使用*
作为字段精度说明符,它会告诉printf
它是可变的。然后,您可以指定另一个前面的int
参数,以告知printf
所需的精度。
来自printf(3)
:
可以写“*”或“* m $”(对于某些十进制整数m)而不是十进制数字字符串来指定 字段宽度分别在下一个参数或第m个参数中给出,它必须是int类型。
请注意,这也可用于设置要从字符串中打印的最大字符数。
#include <stdio.h>
int main(void)
{
int places = 3;
printf("%0.*f\n", places, 1.23456789);
printf("%0.*f\n", places, 6.7);
char buf[] = "Stack OverflowXXXXXXXX";
printf("%.*s\n", 14, buf);
return 0;
}
输出:
1.235
6.700
Stack Overflow