-
「Functions HI-TECH C PRINTF」の版間の差分
提供: HI-TECH C for CP/M Fan WIKI(JP)
(ページの作成:「<strong>PRINTF, VPRINTF</strong> ==概要== #include <stdio.h> int printf(char * fmt, ...) int vprintf(char * fmt, va_list va_arg) ==詳細== <strong>Printf</st...」) |
(相違点なし)
|
2017年12月19日 (火) 10:41時点における最新版
PRINTF, VPRINTF
概要
#include <stdio.h> int printf(char * fmt, ...) int vprintf(char * fmt, va_list va_arg)
詳細
Printf()は標準出力を扱う出力フォーマットルーチンです。与えられたストリームを扱うためのルーチン(fprintf())や文字列バッファに入れるルーチン(sprintf()など、これに対応するものがあります。Printf()はゼロ個、もしくはそれ以上の引数が続くフォーマット文字列を渡されます。フォーマット文字列は変換の指示で、それはどれも引数のリストの数値を出力するために使用されます??どの変換指示も%m.ncという形式をもちます。これはパーセント記号%が変換の導入で、オプション的な幅の指示である m.、精度指示を表すn(.の次に始まります)、そして変換の方を指定する文字cから成ります。マイナス記号('-')はmに先行し、フィールド内を右ではなく左寄せに調整します。フィールドが変換に必要な幅よりも大きかった場合、ブランクパディングが左、もしくは右側に指定されます。数値の変換に右寄せが指定され、最初のmの数値が0の場合、パディングはブランクではなく、ゼロになります。
文字*が10進数の定数の位置で使用された場合、例えば%*dなどでは、一つの整数型引数が変数からリストから取られて共有されます??
変換の型は以下の通りです。
- f
- 浮動小数点では、mが全部の幅を取り、nは小数点以降の桁数となります。nが省略された場合のデフォルトは6です。
- e
- 科学的記法で対応する引数を表示します。それ以外はfと似ています。
- g
- fフォーマットを使用します。最小の幅で最高の精度を提供します??
- o x X u d
- 整数の変換です。それぞれの基数は8,16,10,10です。変換はdの場合、符号あり、それ以外は符号なしです。精度数は表示する数字の桁の総体??でゼロが強制的に先行します。例えば%8.4xは少なくとも4つの16進数を幅8のフィールドで表示します。キーレターlが引数に先行する場合、long intの場合、もしくは符号なしです。文字Xは16進数でA-Fの大文字を、文字xではa-fの小文字を出力します。
- s
- 文字列を表示します。引数は文字のポインタであると仮定します。フィールドm文字の中で最大限n文字が文字列から表示されます。
- c
- 文字列は1文字と仮定され、その文字通りに表示されます。
変換指定に使用される他のあらゆる文字は表示されます。つまり、%%はパーセント文字1文字です。以下に例を挙げます。
printf("Total = %4d%%", 23) yields 'Total =23%' printf("Size is %lx" , size) where size is a long, prints size as hexadecimal. printf("Name = %.8s", "a1234567890") yields 'Name = a1234567' printf("xx%*d", 3, 4) yields 'xx 4'
printfはエラー時にEOFを、その他の場合は0を返します。Vprintfはprintfに類似していますが、引数リストではなく、引数リストポインタを取ります。引数リストの詳細についてはva_start()を参照してください。
参照
fprintf, sprintf