_cgets, _cgetws
Возвращает символьную строку из консоли.Существуют более безопасные версии этих функций; см. раздел _cgets_s, _cgetws_s.
Важно |
---|
Этот API нельзя использовать в приложениях, запускаемых в среде выполнения Windows.Дополнительные сведения см. в разделе Функции CRT не поддерживаются при /ZW. |
char *_cgets(
char *buffer
);
wchar_t *_cgetws(
wchar_t *buffer
);
template <size_t size>
char *_cgets(
char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_cgetws(
wchar_t (&buffer)[size]
); // C++ only
Параметры
- buffer
Место хранения для данных.
Возвращаемое значение
_cgets и _cgetws возвращают указатель на начало строки в buffer[2].Если buffer имеет значение NULL, то эти функции вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров.Если среда выполнения может продолжить, они возвращают NULL и errno задается значение EINVAL.
Заметки
Эти функции чтения строку символов из консоли и хранят строки и его длина в расположении, указанных в buffer.Параметр buffer должен быть указателем на массив символов.Первый элемент массива, buffer[0] должен содержать максимальную длину (в символах) строки для чтения.Массив должен содержать достаточно элементы для хранения строки, конечный нуль-символ ("\0"), и 2 дополнительных байта.Функция не будет чтения очереди канала до сочетания символов возврата экипажа (CR-LF) или указанное число знаков для чтения.Строка, хранящихся запустить из buffer[2].Если функция считывает CR-LF, хранится нуль-символ ("\0").Функция затем сохраняет фактическая длина строки во втором элементе массива, buffer[1].
Поскольку все ключи редактирования активными, если _cgets и _cgetws вызываются во время выполнения в окне консоли, нажимать ключ F3 повторят вписанная последней записи.
В C++, эти функции имеют перегруженные шаблонные версии, которые вызывают более новые и безопасные аналоги этих функций.Для получения дополнительной информации см. Предоставляйте перегруженный шаблона.
Универсальное текстовое сопоставление функций
Подпрограмма TCHAR.H |
Не указаны _UNICODE и _MBCS |
определенные _MBCS |
Определение _UNICODE |
---|---|---|---|
_cgetts |
_cgets |
_cgets |
_cgetws |
Требования
Функция |
Требуемый заголовок |
---|---|
_cgets |
<conio.h> |
_cgetws |
<conio.h> или <wchar.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость во введении.
Пример
// crt_cgets.c
// compile with: /c /W3
// This program creates a buffer and initializes
// the first byte to the size of the buffer. Next, the
// program accepts an input string using _cgets and displays
// the size and text of that string.
#include <conio.h>
#include <stdio.h>
#include <errno.h>
int main( void )
{
char buffer[83] = { 80 }; // Maximum characters in 1st byte
char *result;
printf( "Input line of text, followed by carriage return:\n");
// Input a line of text:
result = _cgets( buffer ); // C4996
// Note: _cgets is deprecated; consider using _cgets_s
if (!result)
{
printf( "An error occurred reading from the console:"
" error code %d\n", errno);
}
else
{
printf( "\nLine length = %d\nText = %s\n",
buffer[1], result );
}
}