_cgets_s _cgetws_s

從主控台取得字串。_cgets 和 _cgetws 這兩個版本有安全性增強,如 安全性功能,則在 CRT 中中所述。

重要事項重要事項

這個應用程式開發介面無法用來在 Windows 執行階段中執行的應用程式。如需詳細資訊,請參閱 CRT 函式不支援使用 /ZW

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

Return

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 和 _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