我有一个代码:
#include <stdio.h>
#include <conio.h>
void main()
{
int n = 5;
clrscr();
printf("n=%*d", n);
getch();
}
我得到的输出是:n= 5
。为什么有空间?它是如何产生的? *
在代码中的用途是什么?
答案 0 :(得分:5)
如有疑问,请阅读docs:
*
:宽度未在格式字符串中指定,而是作为必须格式化的参数之前的附加整数值参数。
但是,您似乎错误地使用了它。使用它的正确方法是这样的:
printf("n=%*d", 2, n);
答案 1 :(得分:3)
使用此*
,您可以使用变量设置打印的宽度。
答案 2 :(得分:3)
C Manual中明确提到了这一点。
答案已由Richard J. Ross III给出。再次引用手册中的内容。
format 未在格式字符串中指定,而是作为必须格式化的参数前面的附加整数值参数。
考虑以下代码:
#include<stdio.h>
main()
{
int a,b;
float c,d;
a = 15;
b = a / 2;
printf("%d\n",b);
printf("%3d\n",b);
printf("%03d\n",b);
c = 15.3;
d = c / 3;
printf("%3.2f\n",d);
}
输出结果为:
7
7
007
5.10
您可以在此处看到printf
函数如何用于格式化输出。希望能帮助到你。 :)