_scprintf、_scprintf_l、_scwprintf、_scwprintf_l
書式設定された文字列の文字数を返します。
int _scprintf(
const char *format [,
argument] ...
);
int _scprintf_l(
const char *format,
locale_t locale [,
argument] ...
);
int _scwprintf(
const wchar_t *format [,
argument] ...
);
int _scwprintf_l(
const wchar_t *format,
locale_t locale [,
argument] ...
);
パラメーター
format
書式指定文字列。argument
省略可能な引数。locale
使用するロケール。
詳細については、「scanf 関数と wscanf 関数の書式指定フィールド」を参照してください。
戻り値
文字列が指定された書式指定コードを使用してファイルやバッファーに出力されるか、または送信する場合に生成される文字数を返します。 返される値には、終端の NULL 文字は含まれません。 ワイド文字の場合は、_scwprintf が同じ機能を実行します。
format が NULL ポインターの場合は、「パラメーターの検証」に説明されているように、無効なパラメーター ハンドラーが呼び出されます。 実行の継続が許可された場合、これらの関数は -1 を返し、errno を EINVAL に設定します。
エラー コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。
解説
各 argument は formatの対応する書式指定に従って (存在する場合) に変換されます。 format は通常の文字で構成し、その形式と機能は printf 関数の format と同じです。
_l サフィックスが付いているこれらの関数の各バージョンは、現在のスレッド ロケールの代わりに渡されたロケール パラメーターを使用する点を除いて同じです。
セキュリティに関するメモ |
---|
format にユーザー定義の文字列を指定しないでください。 |
汎用テキスト ルーチンのマップ
Tchar.h のルーチン |
_UNICODE および _MBCS が未定義の場合 |
_MBCS が定義されている場合 |
_UNICODE が定義されている場合 |
---|---|---|---|
_sctprintf |
_scprintf |
_scprintf |
_scwprintf |
_sctprintf_l |
_scprintf_l |
_scprintf_l |
_scwprintf_l |
必要条件
ルーチン |
必須ヘッダー |
---|---|
_scprintf, _scprintf_l |
<stdio.h> |
_scwprintf, _scwprintf_l |
<stdio.h> または <wchar.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
// crt__scprintf.c
#define _USE_MATH_DEFINES
#include <stdio.h>
#include <math.h>
#include <malloc.h>
int main( void )
{
int count;
int size;
char *s = NULL;
count = _scprintf( "The value of Pi is calculated to be %f.\n",
M_PI);
size = count + 1; // the string will need one more char for the null terminator
s = malloc(sizeof(char) * size);
sprintf_s(s, size, "The value of Pi is calculated to be %f.\n",
M_PI);
printf("The length of the following string will be %i.\n", count);
printf("%s", s);
free( s );
}
参照
関連項目
fprintf、_fprintf_l、fwprintf、_fwprintf_l
printf、_printf_l、wprintf、_wprintf_l
scanf、_scanf_l、wscanf、_wscanf_l