Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Получает строку из потока stdin . Эти версии имеют _getwsулучшения безопасности, как описано в функциях getsбезопасности в CRT.
Синтаксис
char *gets_s(
char *buffer,
size_t sizeInCharacters
);
wchar_t *_getws_s(
wchar_t *buffer,
size_t sizeInCharacters
);
template <size_t size>
char *gets_s( char (&buffer)[size] ); // C++ only
template <size_t size>
wchar_t *_getws_s( wchar_t (&buffer)[size] ); // C++ only
Параметры
buffer
Место хранения входной строки.
sizeInCharacters
Размер буфера.
Возвращаемое значение
Возвращает значение buffer в случае успешного выполнения. Указатель NULL указывает на ошибку или конец файла. Используйте ferror или feof определите, какой из них произошел.
Замечания
Функция gets_s считывает строку из стандартного потока ввода stdin и сохраняет ее в буфере buffer. Строка состоит из всех символов до первого нового символа ('\n). gets_s затем заменяет новый символ null ('\0) перед возвратом строки. Напротив, функция fgets_s сохраняет символ новой строки.
Если первый символ считывается в конце файла, возвращается пустой символ в начале bufferи NULL возвращается.
_getws_s — это версия функции gets_s для расширенных символов; ее аргумент и возвращаемое значение являются строками расширенных символов.
NULL sizeInCharacters Если buffer значение равно нулю или равно нулю, или если буфер слишком мал для хранения входной строки и конца null, эти функции вызывают обработчик недопустимых параметров, как описано в разделе "Проверка параметров". Если выполнение может быть продолжено, эти функции возвращают NULL и устанавливают параметр errno в значение ERANGE.
В C++ использование данных функций упрощено наличием шаблонных перегрузок; перегруженные методы могут автоматически определять длину буфера (что исключает необходимость указания аргумента с размером буфера), а также они могут автоматически заменять более старые, незащищенные функции их новыми безопасными аналогами. Дополнительные сведения см. в разделе "Безопасные перегрузки шаблонов".
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
TCHAR.H рутина |
_UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
|---|---|---|---|
_getts_s |
gets_s |
gets_s |
_getws_s |
Требования
| Маршрут | Обязательный заголовок |
|---|---|
gets_s |
<stdio.h> |
_getws_s |
<stdio.h> или <wchar.h> |
Консоль не поддерживается в приложениях универсальная платформа Windows (UWP). Стандартные дескрипторы потока, связанные с консолью, stdinstdoutи stderr, должны быть перенаправлены перед тем, как функции времени выполнения C могут использовать их в приложениях UWP. Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_gets_s.c
// This program retrieves a string from the stdin and
// prints the same string to the console.
#include <stdio.h>
int main( void )
{
char line[21]; // room for 20 chars + '\0'
gets_s( line, 20 );
printf( "The line entered was: %s\n", line );
}
Hello there!
The line entered was: Hello there!
См. также
Потоковый ввод-вывод
gets, _getws
fgets, fgetws
fputs, fputws
puts, _putws