Printf

Article on other languages:

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire

printf(プリントエフ)は、C言語の標準入出力ヘッダー(<stdio.h>)で宣言されている関数である。引数で与えられた書式付きの文字列を、環境によって設定された標準出力(stdout)に出力する。JIS X 3010:2003においてその機能は「実引数にstdoutを実引数として付加したfprintf関数と等価とする」と規定されている (7.19.6.3)。

この関数は、第1引数に与えられた文字列を出力する。C言語の他の単純な入出力関数に比べ、比較的複雑な構造を持っており、第1引数の文字列のなかで書式を指定することで、第2引数以降の任意の数の引数を、書式に従って出力することができる。また、整数型(int型)の戻り値を持ち、出力に成功した場合には転送したバイト数、出力に失敗した場合には負数を返却する。

目次

形式

#include <stdio.h>
int printf(const char *format, ...);

書式化文字列

上記形式における第一引数formatは、それに続く実引数の変換方法を指定する。書式化文字列には、通常のマルチバイト文字または'%'で始まる変換指定のいずれかの指令を0個以上含む。多バイト文字が含まれ、かつ文字コードシフトシーケンスに依存する場合には、書式化文字列は初期シフト状態で始まり、初期シフト状態で終わらなければならない。

変換指定

変換指定は次の形式をとる。([ ]内は省略可能)

%[フラグ][最小フィールド幅][.精度][長さ修飾子]変換指定子

フラグ

変換指定のフラグは以下の通り。

フラグ 意味
- フィールドの左寄せ
+ 常に符号を出力
空白 数値が正または 0 の場合は符合の代わりに空白を出力
# 代替形式。基数を表すプレフィックスの出力等
0 出力文字数が最小フィールド幅未満の場合は'0'を出力

長さ修飾子

修飾子 意味 導入バージョン
hh 実引数は char 型 C99以降
h 実引数は short 型 全バージョン
l(エル) 実引数は long 型または wchar_t 型 wchar_t についてはC95以降
ll(エルエル) 実引数は long long 型 C99以降
j 実引数は intmax_t 型 C99以降
z 実引数は size_t 型 C99以降
t 実引数は ptrdiff_t 型 C99以降
L 実引数は long double 型 全バージョン

変換指定子

指定子 意味 導入バージョン
d, i 10進符号付き整数 全バージョン
u 10進符号無し整数 全バージョン
o 8進符号無し整数 全バージョン
x, X 16進符号無し整数( X は大文字で出力) 全バージョン
e, E 指数形式浮動小数点数( E は大文字で出力) 全バージョン
f, F 小数形式浮動小数点数( F は大文字で出力) 全バージョン
g, G e または f 形式のうち適した方( G は大文字で出力) 全バージョン
a, A 16進浮動小数点( A は大文字で出力) C99以降
c 文字 全バージョン
s 文字列 全バージョン
p ポインタの値 全バージョン
n 整数変数に出力済み文字数を格納 全バージョン
% '%'の出力 全バージョン

コード例

#include <stdio.h>
 
int main(void)
{
  int a = 1234;
  printf("%d %o %x\n", a, a, a);
  printf("%s %c\n", "abc", 'x');
  return 0;
}

上記のコードをコンパイルし実行すると、次の出力が得られる。

1234 2322 4d2
abc x

参考文献

  • JIS X 3010:2003 プログラミング言語C

関連項目

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net