共用方式為


_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。如需詳細資訊,請參閱平台叫用範例

請參閱

參考

主控台和連接埠 I/O

_getch、_getwch