_cgets_s、_cgetws_s
從主控台取得字元。 These versions of _cgets and _cgetws have security enhancements, as described in CRT 中的安全性功能.
重要
這個應用程式開發介面不能用於 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
參數
[out] buffer
資料儲存位置[in] numberOfElements
緩衝區的大小,以單一位元組或寬字元,也是要讀取的字元數上限。[in] pSizeRead
實際讀取的字元數。
傳回值
如果成功傳回值為零;否則,失敗則為錯誤碼。
錯誤狀況
buffer |
numberOfElements |
pSizeRead |
傳回 |
buffer 的內容 |
---|---|---|---|---|
NULL |
any |
any |
EINVAL |
N/A |
非NULL |
零 |
any |
EINVAL |
未修改 |
非NULL |
any |
NULL |
EINVAL |
長度為零的字串。 |
備註
_cgets_s 和 _cgetws_s 從主控台讀取字串和複製字串 (包括 null 結束字元) 寫入 buffer。 _cgetws_s 是函式的寬字元版本;除了字元大小之外,這兩個函式行為相同。 要讀取的資料大小的最大值,以 numberOfElements 參數。 這個大小應該包括結束的 null 額外的字元。 讀取的實際 pSizeRead 集合中的位置。
如果錯誤發生在作業期間或在驗證參數,不正確的參數叫用處理常式,如 參數驗證 中所述。 如果允許繼續執行, errno 會設為 EINVAL ,並回傳 EINVAL 。
C++ 利用多載樣板簡化了這些函式的使用方式。多載可自動推斷緩衝區長度 (因而不須指定大小引數),也可以將安全性小的舊函式自動取代成較新且安全的對應函式。 如需詳細資訊,請參閱安全範本多載。
一般文字常式對應
Tchar.h 常式 |
未定義 _UNICODE and _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。如需詳細資訊,請參閱平台叫用範例。