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