私はこのコードを持っています:
#include <stdio.h>
#include <conio.h>
void main()
{
int n = 5;
clrscr();
printf("n=%*d", n);
getch();
}
私が得た出力は次のとおりn= 5
です。なぜスペースがあるのですか?どのように生成されますか?*
コードでの使用は何ですか?
疑問がある場合は、ドキュメントをお読みください:
*
:幅はフォーマット文字列では指定されませんが、フォーマットする必要がある引数の前に追加の整数値引数として指定されます。
しかし、あなたはそれを間違って使用しているようです。それを使用する適切な方法は次のようになります。
printf("n=%*d", 2, n);
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
ここで、関数を使用して出力をフォーマットする方法を確認できます。それが役に立てば幸い。:)
これを使用*
すると、印刷の幅を変数で設定できます。