fgets()

Считать строку символов из потока

Прототип:

#include <stdio.h>
char * fgets( char *buf,
size_t n,
FILE *fp );

Аргументы:

buf
Указатель на буфер, в котором fgets() может разместить считанные символы.
n
Максимальное количество символов для чтения.
fp
Поток, из которого считываются символы.

Библиотека:

libc

Описание:

Функция fgets() считывает строку символов из потока, определяемого fp, и размещает ее в массиве, определяемом buf.

Чтение символов заканчивается, если:

Символ новой строки не отбрасывается. Нулевой символ помещается сразу после последнего символа, считанного в массив.


Note: Не стоит рассчитывать, что символ новой строки будет в каждой строке, считанной fgets(). Символ новой строки может отсутствовать, если перед ним находится более, чем n-1 символ.

Также символ новой строки может не быть считан, если достигнут конец файла.


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

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


Note: Необходимо использовать функции feof() или ferror() для определения, достигнут ли конец файла или произошла ошибка.

Примеры:

#include <stdio.h>
#include <stdlib.h>
int main( void )
{
FILE *fp;
char buffer[80];
fp = fopen( "file", "r" );
if ( fp != NULL )
{
while ( fgets( buffer, 80, fp ) != NULL )
{
fputs( buffer, stdout );
}
fclose( fp );
return (EXIT_SUCCESS);
}
return (EXIT_FAILURE);
}

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

ANSI, POSIX 1003.1

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

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

errno, feof(), ferror(), fopen(), fputs(), getc(), gets(), fgetc()




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