snprintf_s、snwprintf_s

提供: RAD Studio
移動先: 案内検索

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_ss[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;
}

関連項目