snprintf_s、snwprintf_s
stdio.h:インデックス への移動
ヘッダー ファイル
stdio.h
カテゴリ
書式付き入出力関数
プロトタイプ
int snprintf_s(char * restrict s, rsize_t n, const char * restrict format, ...);
int snwprintf_s(wchar_t * restrict s, rsize_t n, const wchar_t * restrict format, ...);
説明
n パラメータで指定された最大長を持つバッファ s に対して、整形済みの出力を送信します。
snprintf_s は、snprintf と同等のものですが、実行時制約が追加されて、format が NULL ではないことと、n がゼロ以上 RSIZE_MAX 以下であることが確認されます。
エラーが発生し、実行時制約が有効な場合、snprintf_s は s[0] を NULL に設定します。
sprintf_s、swprintf_s と異なり、snprintf_s は結果を s が指す先の配列の長さまで切り詰めます。
戻り値
s のサイズが十分に大きい場合には、文字列の終わりを示す '\0' 文字を除いた出力文字数を返します。 実行時制約の違反が起きると、負の値を返します。
メモ:'\0' 文字が書き込まれるのは、戻り値がゼロ以上 n 未満の場合のみです。
例
#include <stdio.h> #include <math.h> int main(void) { char buffer[80]; snprintf_s(buffer, 40, "An approximation of Pi is %f\n", M_PI); puts(buffer); return 0; }