次の方法で共有


_cgets_s、_cgetws_s

更新 : 2007 年 11 月

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

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
    バッファのサイズ (つまり、読み取りの対象となる最大文字数)。1 バイト文字またはワイド文字単位になります。

  • [入力] pSizeRead
    実際に読み取られた最大文字数。

戻り値

正常終了した場合の戻り値は 0、エラーが発生した場合はエラー コードです。

エラー条件

buffer

numberOfElements

pSizeRead

Return

buffer の内容

NULL

any

any

EINVAL

n/a

NULL 以外

0

any

EINVAL

変更されない

NULL 以外

any

NULL

EINVAL

長さ 0 の文字列

解説

_cgets_s 関数と _cgetws_s 関数は、コンソールから文字列を読み取り、その文字列 (終端の null を含む) を buffer にコピーします。_cgetws_s はこの関数のワイド文字バージョンであり、文字サイズ以外はこの 2 つの関数の動作は同じです。読み取る文字列の最大サイズは、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>

互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。

.NET Framework の相当するアイテム

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

参照

参照

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

_getch、_getwch