_cgets_s
, _cgetws_s
Возвращает строку символов из консоли. Эти версии и _cgetws
имеют улучшения безопасности, как описано в функциях _cgets
безопасности в CRT.
Внимание
Этот API нельзя использовать в приложениях, выполняемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
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 |
Н/Д |
не NULL |
zero | любое | EINVAL |
не изменено |
не NULL |
любое | NULL |
EINVAL |
строка нулевой длины |
Замечания
_cgets_s
и _cgetws_s
читают строки из консоли и копируют ее (с нулевым признаком конца) в buffer
. _cgetws_s
— версия функции для расширенных символов. За исключением размера символа, поведение этих двух функций идентично. Максимальный размер строки для чтения передается в качестве параметра numberOfElements
. Размер должен учитывать дополнительный символ для конечного нуля. Число фактически считанных символов помещается в pSizeRead
.
Если во время операции или при проверке параметров возникает ошибка, вызывается обработчик недопустимых параметров, как описано в разделе проверки параметров. Если выполнение разрешено продолжать, errno
задано EINVAL
значение и EINVAL
возвращается.
В C++использование этих функций упрощается перегрузками шаблонов. Перегрузки могут автоматически выводить длину буфера, что устраняет необходимость указать аргумент размера. Они также могут автоматически заменить старые, менее безопасные функции более новыми, более безопасными. Дополнительные сведения см. в разделе "Безопасные перегрузки шаблонов".
Версии библиотек отладки этих функций сначала заполняют буфер 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> |
Дополнительные сведения о совместимости см. в разделе Совместимость.