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


_cgets_s, _cgetws_s

Получает символьную строку из консоли. Эти версии _cgets и _cgetws содержат улучшения безопасности, как описано в разделе Функции безопасности в CRT.

Важно!

Этот API не может использоваться в приложениях, выполняемых в Среда выполнения 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

Параметры

  • [исходящий] buffer
    Место хранения данных.

  • [входящий] numberOfElements
    Размер буфера для однобайтовых или расширенных символов, который также является максимальным количеством считываемых символов.

  • [входящий] pSizeRead
    Количество фактически считанных символов.

Возвращаемое значение

Возвращаемое значение нуль при успехе, в противном случае, если происходит сбой, — код ошибки.

Условия возникновения ошибки

buffer

numberOfElements

pSizeRead

Return

Содержимое buffer.

NULL

any

any

EINVAL

Н/Д

не 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. Для получения дополнительной информации см. Примеры вызовов неуправляемого кода.

См. также

Ссылки

Ввод-вывод на консоль и порт

_getch, _getwch