_cgets_s、_cgetws_s_cgets_s, _cgetws_s

コンソールから文字列を取得します。Gets a character string from the console. これらのバージョンの _cgets および _cgetws は、「CRT のセキュリティ機能」の説明にあるとおり、セキュリティが強化されたバージョンです。These versions of _cgets and _cgetws 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.


errno_t _cgets_s(
   char *buffer,
   size_t numberOfElements,
   size_t *pSizeRead
errno_t _cgetws_s(
   wchar_t *buffer
   size_t numberOfElements,
   size_t *pSizeRead
template <size_t size>
errno_t _cgets_s(
   char (&buffer)[size],
   size_t *pSizeRead
); // C++ only
template <size_t size>
errno_t _cgetws_s(
   wchar_t (&buffer)[size],
   size_t *pSizeRead
); // C++ only


データの格納場所。Storage location for data.

バッファーのサイズです。単位はバイト数またワイド文字数です。これは、読み取る最大の文字数でもあります。The size of the buffer in single-byte or wide characters, which is also the maximum number of characters to be read.

実際に読み取った文字数。The number of characters actually read.

戻り値Return Value

成功した場合の戻り値は 0 です。それ以外の場合 (エラー発生時) は、エラー コードです。The return value is zero if successful; otherwise, an error code if a failure occurs.

エラー条件Error Conditions

バッファーbuffer numberOfElementsnumberOfElements pSizeReadpSizeRead ReturnReturn 内容バッファーContents of buffer
NULLNULL 任意any 任意any EINVALEINVAL 適用なしn/a
いないNULLnot NULL ゼロzero 任意any EINVALEINVAL 変更されないnot modified
いないNULLnot NULL 任意any NULLNULL EINVALEINVAL 長さゼロの文字列zero-length string


_cgets_s_cgetws_sコンソールから文字列を読み取るし、(null 終端文字の場合)、文字列をコピーバッファーします。_cgets_s and _cgetws_s read a string from the console and copy the string (with a null terminator) into buffer. _cgetws_sはこの関数のワイド文字バージョンは、以外の文字のサイズ、これら 2 つの関数の動作は同じです。_cgetws_s is the wide character version of the function; other than the character size, the behavior of these two functions is identical. 読み取る文字列の最大サイズとして渡される、 numberOfElementsパラメーター。The maximum size of the string to be read is passed in as the numberOfElements parameter. このサイズには、終端の null に対応する追加の文字を含める必要があります。This size should include an extra character for the terminating null. 読み取られた文字数が実際に配置されます読み取らします。The actual number of characters read is placed in pSizeRead.

操作中に、またはパラメーターを検証する際にエラーが発生した場合は、「パラメーターの検証」の説明にあるとおり無効なパラメーター ハンドラーが呼び出されます。If an error occurs during the operation or in the validating of the parameters, the invalid parameter handler is invoked, as described in Parameter Validation . 続けるには、実行が許可された場合errnoに設定されているEINVALEINVALが返されます。If execution is allowed to continue, errno is set to EINVAL and EINVAL is returned.

C++ では、テンプレートのオーバーロードを利用すると、これらの関数の使用が簡素化されます。オーバーロードでは、バッファー長が自動的に推論されるのでサイズ引数を指定する必要がなくなるだけでなく、古くてセキュリティが万全ではない関数を新しくてセキュリティが強化された関数に自動的に置き換えることができます。In C++, the use of these functions is simplified by template overloads; the overloads can infer buffer length automatically, thereby eliminating the need to specify a size argument, and they can automatically replace older, less-secure functions with their newer, more secure counterparts. 詳細については、「 Secure Template Overloads」を参照してください。For more information, see Secure Template Overloads.

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

Tchar.h のルーチンTchar.h routine _UNICODE および _MBCS が未定義の場合_UNICODE and _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_cgetts_s_cgetts_s _cgets_s_cgets_s _cgets_s_cgets_s _cgetws_s_cgetws_s


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

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

関連項目See also

コンソール入出力とポート入出力Console and Port I/O
_getch、_getwch_getch, _getwch