トップページ – C言語編 – 標準ライブラリのリファレンス(名前順)
トップページ – C言語編 – 標準ライブラリのリファレンス(ヘッダ別)
概要 |
変換指定に沿って変換された文字列を格納する。 |
|
ヘッダ | ||
形式 |
int vsprintf(char* restrict s, const char* restrict format, va_list args); |
|
引数 |
s |
結果を格納するメモリアドレス。 |
format |
変換指定を含んだ、あるいは含まないプレーンな文字列。 |
args |
format に含まれている変換指定子に対応した、可変個引数リスト。 |
|
戻り値 |
正常に終了した場合は、出力した文字数が返される(末尾のヌル文字は含まない)。エラー発生時は負数が返される。 |
|
詳細 |
仮引数が … から va_list
に変わったことを除き、sprintf関数と同等である。 |
|
注意 |
第3引数に渡すva_list型のオブジェクトは、事前に va_start による初期化が必要である。 va_list に、必要な個数の引数が含まれていない場合の動作は未定義。余分に存在している場合には、評価は行われるが、vsprintf関数としては無視する。 この関数は内部で va_argマクロを呼び出すため、関数から戻った後の args の状態は不定である。 結果を配列へ格納するため、vprintf関数と異なり、バッファオーバーフローの可能性を配慮しなければならない。変換指定子を複数使うケースでは、丁寧に最大文字数を考える必要があり、安全に使うことは難しい。 |
|
使用例 |
実行結果:
|
|
関連 |
標準出力への出力に特化した vprintf関数がある。任意のストリームへ出力するには
vfprintf関数を使う。 |
|
解説章 |
本ページはアフィリエイトプログラムによる収益を得ています。
以下のリンクから商品を購入されると、Programming Place
管理者に紹介料が支払われています。
()
の前後の空白の空け方)(
の直後、)
の直前に空白を入れない)return 0;
を削除(C言語編全体でのコードの統一)解説中で C95 を(C89 に対して)特別扱いしないように修正。そもそもC言語編は C95ベースなので、余計な説明は省く。
全体的に文章を見直し修正。
「サイズ」という表記について表現を統一。 型のサイズ(バイト数)を表しているところは「大きさ」、要素数を表しているところは「要素数」。
C言語編全体で表記を統一するため、「フォーマット指定」を「変換指定」に改めた。
新規作成。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |