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

Cマニュアルに明記されています。

答えはすでにリチャードJ.ロス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 に答える
3

これを使用*すると、印刷の幅を変数で設定できます。

于 2012-07-27T16:26:48.050 に答える