Прототип функции 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 символов, в зависимости от того, какое из событий наступит раньше, и выводит их на экран.