-

「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を返します。Vprintfprintfに類似していますが、引数リストではなく、引数リストポインタを取ります。引数リストの詳細についてはva_start()を参照してください。

参照

fprintf, sprintf