次の方法で共有


_cgets_s、_cgetws_s

コンソールから文字列を取得します。_cgets と_cgetws これらのバージョンのに CRT のセキュリティ機能に説明されているように、のセキュリティが強化があります。

重要 : 重要

この API は Windows ランタイムで実行されるアプリケーションで使用することはできません。詳細については、でサポート /ZW CRT 関数" "を参照してください。

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

パラメーター

  • [出力] buffer
    データの格納場所。

  • [入力] numberOfElements
    また、読み取る最大文字数であるワイド文字、またはバイトのバッファーのサイズ。

  • [入力] pSizeRead
    実際に読み込まれた文字数。

戻り値

戻り値が成功した場合はゼロ。; それ以外の場合は。失敗した場合は、エラー コード。

エラー条件

buffer

numberOfElements

pSizeRead

Return キー

buffer の内容

NULL

任意

任意

EINVAL

適用なし

NULL 以外

0

任意

EINVAL

変更されない

NULL 以外

任意

NULL

EINVAL

長さ 0 の文字列

解説

_cgets_s と _cgetws_s は、コンソールから文字列を読み込み、bufferに文字列 (終端の null を含む) をコピーします。_cgetws_s は、関数のワイド文字バージョンです; 文字サイズ以外、この二つの関数の動作は同じです。読み取る numberOfElements のパラメーターとして文字列の最大サイズが渡されます。このサイズは終端の null 用の追加の文字が含まれる必要があります。実際に読み込まれた文字数は pSizeReadに設定されます。

操作でエラーがパラメーターまたはパラメーターの検証で発生した場合、無効なパラメーター ハンドラーが パラメーターの検証 に説明されているように、開始されます。実行の継続が許可 errno は EINVAL に設定され、EINVAL が返されます。

C++ では、これらの関数の使用はテンプレート オーバーロードによって簡素化されています; オーバーロードはバッファーの長さを、サイズ引数を指定する必要がなくなります自動的に推論、新しくセキュリティが強化された同等と自動的にセキュリティが弱い古い関数を置換できる場合。詳細については、「セキュリティ保護されたテンプレート オーバーロード」を参照してください。

汎用テキスト ルーチンのマップ

Tchar.h のルーチン

_UNICODE および _MBCS が未定義の場合

_MBCS が定義されている場合

_UNICODE が定義されている場合

_cgetts_s

_cgets_s

_cgets_s

_cgetws_s

必要条件

ルーチン

必須ヘッダー

_cgets_s

<conio.h>

_cgetws_s

<conio.h> か <wchar.h>

互換性の詳細については、互換性を参照してください。

同等の .NET Framework 関数

該当なし標準 C 関数を呼び出すには、PInvoke を使用します。詳細については、「プラットフォーム呼び出しの例」を参照してください。

参照

関連項目

コンソール入出力とポート入出力

_getch、_getwch