3

我有这个代码:

#include <stdio.h>
#include <conio.h>
void main()
{
    int n = 5;
    clrscr();
    printf("n=%*d", n);
    getch();
}

我得到的输出是:n= 5. 为什么会有空间?它是如何产生的?代码中有什么用*

4

3 回答 3

5

如有疑问,请阅读文档

*

宽度未在格式字符串中指定,而是作为必须格式化的参数之前的附加整数值参数。

但是,您似乎用错了。使用它的正确方法是这样的:

printf("n=%*d", 2, n);
于 2012-07-27T16:25:47.193 回答
3

有了这个*,您可以使用变量设置打印的宽度。

于 2012-07-27T16:26:48.050 回答
3

C手册中明确提到了这一点。

Richard J. Ross III已经给出了答案。只是再次引用手册中所说的内容。

宽度未在格式字符串中指定,而是作为必须格式化的参数之前的附加整数值参数。

考虑这段代码:

#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函数如何用于格式化输出。希望能帮助到你。:)

于 2012-07-27T16:36:27.820 回答