Поделиться через


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

Дополнительные сведения о совместимости см. в разделе Совместимость.

См. также

Консоль и порт ввода-вывода
_getch, _getwch