ページ 11

フォーマット指定子について

Posted: 2010年4月17日(土) 16:57
by C復習中
久々にC言語を復習中の身ですが、独習C第4版でフォーマット指定子の項目を眺めていた所
printfのフォーマット指定子で「%n」なるものを見つけました。

最初の学習時にはすっ飛ばしていた様なフォーマット修飾子が出てきたので困っております。


そこで質問
printfのフォーマット修飾子「%n」と言うのはいったい何者なんでしょうか?

私の解釈としてはprintf内で出力された桁数をある変数(又はアドレス?)に格納して
その格納された値を表示出来るようにするフォーマット修飾子なのか?と思っております。

どうか理解されている方が居りましたら教えて頂けると光栄です。

一応、独習Cよりサンプルプログラムを記載しておきます。


----- サンプルプログラム -----
#include <stdio.h>

int main(void)
{
int i;

printf("%d %f\n%n", 100, 123.23, &i);
printf("これまでの出力文字数は %d 個です", i);

return 0;
}

Re:フォーマット指定子について

Posted: 2010年4月17日(土) 17:42
by たかぎ
サンプルの通りでしょう。

%nの直前、すなわち"100 123.230000"および改行の15文字が出力されるので、iには15が格納されます。

Re:フォーマット指定子について

Posted: 2010年4月17日(土) 18:26
by C復習中
No.50811 たかぎ さん

レスありがとうございます。

質問を書いた後、色々と調べまわっていたら見つかりました。
ttp://www.mm2d.net/c/c-01.shtml