共用方式為


_cgets_s, _cgetws_s

從主控台取得字元字串。 這些版本的 _cgets_cgetws 具有安全性增強功能,如 CRT 中的安全性功能中所述

重要

這個 API 不能用於在 Windows 執行階段中執行的應用程式。 如需詳細資訊,請參閱 CRT functions not supported in Universal Windows Platform apps (通用 Windows 平台應用程式中不支援的 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 傳回 buffer 的內容。
NULL 任意 任意 EINVAL n/a
NULL 任意 EINVAL 未修改
NULL 任意 NULL EINVAL 零長度字串

備註

_cgets_s_cgetws_s 從主控台讀取字串和將字串 (包括 null 結束字元) 複製到 buffer_cgetws_s 是函式的寬字元版本;除了字元大小之外,這兩個函式行為相同。 要讀取的資料大小的最大值會做為 numberOfElements 參數傳入。 這個大小應該包含結束的 null 之額外字元。 實際讀取的字元數會放在 pSizeRead

如果在作業期間或驗證參數時發生錯誤,則會叫用不正確參數處理常式,如參數驗證 中所述 。 如果允許繼續執行, errno 則會設定為 EINVAL ,並 EINVAL 傳回 。

在 C++ 中,範本多載會簡化這些函式的使用。 多載可以自動推斷緩衝區長度,而不需要指定 size 引數。 他們也可以使用較新的、更安全的對應專案來自動取代較舊、較不安全的函式。 如需詳細資訊,請參閱 保護範本多載

這些函式的偵錯程式庫版本會先將緩衝區填入0xFE。 若要停用此行為,請使用 _CrtSetDebugFillThreshold

根據預設,此函式的全域狀態會限定于應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態。

泛型文字常式對應

Tchar.h 常式 _UNICODE_MBCS 未定義 _MBCS 定義 _UNICODE 定義
_cgetts_s _cgets_s _cgets_s _cgetws_s

需求

常式 必要的標頭
_cgets_s <conio.h>
_cgetws_s <conio.h > 或 < wchar.h>

如需相容性詳細資訊,請參閱相容性

另請參閱

主控台和埠 I/O
_getch, _getwch