_cscanf_s、_cscanf_s_l、_cwscanf_s、_cwscanf_s_l_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l

コンソールから書式化されたデータを読み出します。Reads formatted data from the console. これらのより安全なバージョンの _cscanf、_cscanf_l、_cwscanf、_cwscanf_l は、「CRT のセキュリティ強化」にあるとおり、セキュリティが強化されています。These more secure versions of _cscanf, _cscanf_l, _cwscanf, _cwscanf_l have security enhancements, as described in Security Features in the CRT.

重要

この API は、Windows ランタイムで実行するアプリケーションでは使用できません。This API cannot be used in applications that execute in the Windows Runtime. 詳細については、「ユニバーサル Windows プラットフォーム アプリでサポートされていない CRT 関数」を参照してください。For more information, see CRT functions not supported in Universal Windows Platform apps.

構文Syntax

int _cscanf_s(
   const char *format [,
   argument] ...
);
int _cscanf_s_l(
   const char *format,
   locale_t locale [,
   argument] ...
);
int _cwscanf_s(
   const wchar_t *format [,
   argument] ...
);
int _cwscanf_s_l(
   const wchar_t *format,
   locale_t locale [,
   argument] ...
);

パラメーターParameters

formatformat
書式指定文字列。Format-control string.

argumentargument
省略可能なパラメーター。Optional parameters.

localelocale
使用するロケール。The locale to use.

戻り値Return Value

正常に変換され、割り当てられたフィールドの数。The number of fields that were successfully converted and assigned. 戻り値には、読まれたが割り当てられなかったフィールドは含まれません。The return value does not include fields that were read but not assigned. 戻り値はEOFのファイルの末尾で読み取ろうとします。The return value is EOF for an attempt to read at end of file. これは、キーボード入力がオペレーティング システムのコマンド ラインのレベルでリダイレクトされる場合に発生します。This can occur when keyboard input is redirected at the operating-system command-line level. 戻り値が 0 の場合は、代入されたフィールドがなかったことを意味します。A return value of 0 means that no fields were assigned.

これらの関数では、パラメーターの検証が行われます。These functions validate their parameters. 場合形式null ポインターの場合は、」の説明に従って、これらの関数は、無効なパラメーター ハンドラーを呼び出しますパラメーターの検証です。If format is a null pointer, these functions invoke the invalid parameter handler, as described in Parameter Validation. これらの関数を返すかどうかは、引き続き実行が許可された、 EOFerrnoに設定されているEINVALします。If execution is allowed to continue, these functions return EOF and errno is set to EINVAL.

RemarksRemarks

_Cscanf_s関数で指定した位置に、コンソールから直接データを読み取ります引数します。The _cscanf_s function reads data directly from the console into the locations given by argument. _getche 関数は文字を読み取るために使用されます。The _getche function is used to read characters. 省略可能な各パラメーターに型指定子に対応する型の変数へのポインターをする必要があります形式します。Each optional parameter must be a pointer to a variable with a type that corresponds to a type specifier in format. 書式設定、入力の解釈のフィールドし、同じ形式し、機能、形式のパラメーター、 scanf_s関数。The format controls the interpretation of the input fields and has the same form and function as the format parameter for the scanf_s function. 中に _cscanf_s通常、入力文字をエコーする最後の呼び出しがあった場合、行われない _ungetchします。While _cscanf_s normally echoes the input character, it does not do so if the last call was to _ungetch.

内の関数のセキュリティで保護されたその他のバージョンと同様、 scanfファミリ、 _cscanf_s_cswscanf_s 、型フィールド文字サイズ引数が必要ですcCsS、および [ します。Like other secure versions of functions in the scanf family, _cscanf_s and _cswscanf_s require size arguments for the type field characters c, C, s, S, and [. 詳細については、「scanf 関数の文字幅指定」を参照してください。For more information, see scanf Width Specification.

注意

型のサイズのパラメーターが符号なしではなく、 size_tします。The size parameter is of type unsigned, not size_t.

これらの関数のバージョン、 _l現在のスレッド ロケールの代わりに渡されたロケール パラメーターを使用する点を除いて、サフィックスは同じです。The versions of these functions with the _l suffix are identical except that they use the locale parameter passed in instead of the current thread locale.

汎用テキスト ルーチンのマップGeneric-Text Routine Mappings

TCHAR.H のルーチンTCHAR.H routine _UNICODE および _MBCS が未定義の場合_UNICODE and _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_tcscanf_s_tcscanf_s _cscanf_s_cscanf_s _cscanf_s_cscanf_s _cwscanf_s_cwscanf_s
_tcscanf_s_l_tcscanf_s_l _cscanf_s_l_cscanf_s_l _cscanf_s_l_cscanf_s_l _cwscanf_s_l_cwscanf_s_l

必要条件Requirements

ルーチンによって返される値Routine 必須ヘッダーRequired header
_cscanf_s_cscanf_s_l_cscanf_s, _cscanf_s_l <conio.h><conio.h>
_cwscanf_s_cwscanf_s_l_cwscanf_s, _cwscanf_s_l <conio.h> または <wchar.h><conio.h> or <wchar.h>

互換性の詳細については、「 互換性」を参照してください。For more compatibility information, see Compatibility.

ライブラリLibraries

C ランタイム ライブラリのすべてのバージョン。All versions of the C run-time libraries.

Example

// crt_cscanf_s.c
// compile with: /c
/* This program prompts for a string
* and uses _cscanf_s to read in the response.
* Then _cscanf_s returns the number of items
* matched, and the program displays that number.
*/

#include <stdio.h>
#include <conio.h>

int main( void )
{
   int result, n[3];
   int i;

   result = _cscanf_s( "%i %i %i", &n[0], &n[1], &n[2] );
   _cprintf_s( "\r\nYou entered " );
   for( i=0; i<result; i++ )
      _cprintf_s( "%i ", n[i] );
   _cprintf_s( "\r\n" );
}
1 2 3
You entered 1 2 3

関連項目See also

コンソール入出力とポート入出力Console and Port I/O
_cprintf、_cprintf_l、_cwprintf、_cwprintf_l_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf_s、_fscanf_s_l、fwscanf_s、_fwscanf_s_lfscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l
scanf_s、_scanf_s_l、wscanf_s、_wscanf_s_lscanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l
sscanf_s、_sscanf_s_l、swscanf_s、_swscanf_s_lsscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l