Прототип функции fgets:
char * fgets( char * string, int num, FILE * filestream );
Заголовочный файл
Название | Язык |
---|---|
stdio.h | С |
cstdio | С++ |
Описание
Функция fgets
считывает символы из потока и сохраняет их в виде строки в параметр string
до тех пор пока не наступит конец строки или пока не будет достигнут конец файла.
Символ новой строки прекращает работу функции fgets
, но он считается допустимым символом, и поэтому он копируется в строку string
.
Нулевой символ автоматически добавляется в строку str после прочитанных символов, чтобы сигнализировать о конце строки.
Параметры:
- string
Указатель на массив типаchar
, в который сохраняются считанные символы. - num
Максимальное количество символов для чтения, включая нулевой символ. - filestream
Указатель на объект типаFILE
, который идентифицирует поток, из которого считываются символы.
Для чтения из стандартного ввода, stdin
может быть использован в качестве этого параметра.
Возвращаемое значение
В случае успеха, функция возвращает указатель на string
. Если конец файла был достигнут и ни один символ не был прочитан, содержимое string
остается неизменными и возвращается нулевой указатель. Если происходит ошибка, возвращается нулевой указатель.
Используйте функции ferror
или feof
для проверки, произошла ошибка или был достигнут конец-в-файла.
Пример: исходный код программы
//пример использования функции fgets #include <cstdio> int main() { FILE * ptrFile = fopen("file.txt" , "r"); char mystring [100]; if (ptrFile == NULL) perror("Ошибка открытия файла"); else { if ( fgets(mystring, 100, ptrFile) != NULL ) // считать символы из файла puts(mystring); // вывод на экран fclose (ptrFile); } return 0; }
Пример работы программы
Этот пример читает первую строку file.txt
или первые 99 символов, в зависимости от того, какое из событий наступит раньше, и выводит их на экран.