gets – чтение строки из стандартного потока ввода.
Синтаксис:
#include < stdio.h >
char *gets (char *s);
Аргументы:
s – указатель на массив, в который будет помещена считанная строка.
Возвращаемое значение:
В случае успешного чтения строки, возвращается указатель на массив в который помещены считанные данные (возвращается аргумент s).
Если достигнут конец файла, а данные не были считаны, то возвращается NULL.
Если при чтении данные произошла ошибка, то возвращается NULL, а в переменную errno записывается код ошибки. При этом состояние массива, в который должна была сохраниться считанная строка, неопределенно.
Описание:
Функция gets считывает строку из стандартного потока ввода (stdin) и помещает ее в массив указанный аргументом s. Чтение строки производится пока не будет встречен символ «переход на новую строку», или не будет достигнут конец файла.
Если чтение строки завершилось по считыванию символа «переход на новую строку», то символ «переход на новую строку» не записывается в массив, а заменяется символом «конец строки»
Применение этой функции не рекомендуется, так как размер считываемой строки не ограничивается размером массива, в который должна быть записана считываемая строка. В результате может возникнуть переполнение массива и несанкционированная запись в память, что приведет к ошибкам в работе программы или ее зависанию.
Рекомендуется использовать функцию fgets вместо функции gets.
Пример:
В примере считывается вводимая с консоли строка и отчет о работе выводится в консоль. В качестве образца в консоль была введена строка: «тест чтения».
#include < stdio.h > //Для printf, gets
int main (void)
{
// Массив, в который помещается считываемая строка
char masstr[100]=””;
//Указатель, в который будет помещен результат работы функции gets
char *rstr;
//Запрос ввода строки
printf (“Введите строку:\n”);
//Чтение строки из стандартного потока ввода
rstr = gets (masstr);
//Вывод результата работы
printf (“Считана строка:\n%s\n”,masstr);
return 0;
}
| |
Результат:
Введите строку:
тест чтения
Считана строка:
тест чтения
|
Смотри так же:
fgetc
fgets
fputc
fputs
getc
getchar
gets
getw
printf
putc
puts
putchar
putw
ungetc
|