LINEスタンプ制作代行サービス・LINEスタンプの作り方!

お電話でのお問い合わせ:03-6869-8600

stampfactory大百科事典

Printf

printf(プリントエフ、print formatted)は、C言語の標準入出力ヘッダー (codice_1)で宣言されている関数である。引数で与えられた書式付きの文字列を、環境によって設定された標準出力 (stdout) に出力する。JIS X 3010:2003においてその機能は「実引数にstdoutを実引数として付加したfprintf関数と等価とする」と規定されている (7.19.6.3)。この関数は、第1引数に与えられた文字列を出力する。C言語の他の単純な入出力関数に比べ、比較的複雑な構造を持っており、第1引数の文字列のなかで書式を指定することで、第2引数以降の任意の数の引数を、書式に従って出力することができる。また、整数型(int型)の戻り値を持ち、出力に成功した場合には転送したバイト数、出力に失敗した場合には負数を返却する。C言語の初心者の大半が最初に使う関数であり、最もオーソドックスかつ使いやすい関数ではあるが、内部では指定された書式を考慮する高級な処理を行っているため、ハードウェアの許容限界まで負荷がかかるシステムや組み込み機器のプログラミングにおいてはあまり使用されることのない関数である。上記形式における第一引数formatは、それに続く実引数の変換方法を指定する。書式化文字列には、通常のマルチバイト文字または'%'で始まる変換指定のいずれかの指令を0個以上含む。多バイト文字が含まれ、かつ文字コードがシフトシーケンスに依存する場合には、書式化文字列は初期シフト状態で始まり、初期シフト状態で終わらなければならない。書式指定を行う"%〜"それぞれを書式指定子と呼ぶ。変換指定は次の形式をとる。([ ]内は省略可能)引数順指定が存在するときは数値の後ろに'$'が入る。で、cmdが hoge linenoが20だった場合、と表示される。これだけならば大きな意味はないが、メッセージを翻訳した際、char *fmtにが入っている状態にすることで、プログラムを変更せずにのように自然な語順に翻訳することができる。これはCの規格ではなくPOSIXで規定されている。変換指定のフラグは以下の通り。fprintfは、引数にファイルポインタfpが追加され、標準出力の代わりにfpへ出力する変種である。sprintfとsnprintfは、引数にchar配列の要素へのポインタstrが追加されたもので、標準出力の代わりにstrへ出力する変種である。snprintfは、さらにstrに書き込んで良い文字数を指定する引数が追加されたものであるが、Cの標準規格に収録されたのはC99からである。wprintf, fwprintf, swprintfは、それぞれprintf, fprintf, snprintfに対応し、ワイド文字を使用するものである。sprintfに対応するワイド文字関数は存在しない。ここまでに挙げたprintfとその変種に対して、可変個引数部分をva_listに変化させた種類が存在する。それぞれ、関数名の頭にvを付けた名称となっている。C11のAnnex K Bounds‐checking interfacesで規定された、安全性を向上させた種類が存在する。それぞれ、関数名の末尾に_sを付けた名称となっている。これらの関数は、__STDC_WANT_LIB_EXT1__を1に定義した上で対応するヘッダをインクルードすると宣言される。以下のような機能が追加されている。上記のコードをコンパイルし実行すると、次の出力が得られる。一般に、書式文字列を外部や利用者から自由に指定できる状態とすることはセキュリティホールの温床となるため望ましくない。特に%n書式を用いたものが有名である。C言語から派生したC++やD言語はもとより、、Ruby、Perlなど他の言語でもprintfが実装されている。また、オブジェクト指向の言語の中には、C++でのBoost::format、Ruby、Pythonなど演算子としてsprintfを実行できるものも存在する。Unix系オペレーティングシステムのコマンドとして実装されたprintfもある。

出典:wikipedia

LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。