gets()

Считать строку символов из стандартного потока ввода (stdin)

Прототип:

#include <stdio.h>
char * gets( char *buf );

Аргументы:

buf
Область памяти, где функция может хранить строку.

Библиотека:

libc

Описание:

Функция gets() получает строку символов из потока stdin, и сохраняет их в массиве, на который указывает buf, до тех пор, пока не будет обнаружен символ EOF или не будет прочитан символ новой строки. Любой символ новой строки отбрасывается, и строка заканчивается NUL.


Note: Следует использовать fgets() вместо gets(); gets() переполняет массив buf, если символ новой строки не считается из stdin до того, как будет достигнут конец массива.

Функция gets() близка к fgets(), за исключением того, что gets() работает с stdin, не имеет аргумента size и заменяет символ новой строки символом NUL.

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

Указатель на буфер. Если возникла ошибка или достигнут конец файла, функция возвращает NULL, код ошибки записывается в errno.


Note: Используйте feof() или ferror() чтобы отличить условие достижения EOF от ошибки.

Примеры:

#include <stdio.h>
#include <stdlib.h>
int main( void )
{
char buffer[80];
while ( gets( buffer ) != NULL )
{
puts( buffer );
}
return (EXIT_SUCCESS);
}

Классификация:

ANSI, POSIX 1003.1

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

errno, feof(), ferror(), fopen(), getc(), fgetc(), fgets(), puts(), ungetc()




Предыдущий раздел: Описание API системной библиотеки