Функция Fgets в C

Функция Fgets в C Программирование и разработка

Функция fgets определена в стандартной библиотеке C (stdio.h) и используется для чтения до n символов из указанного потока, такого как стандартный поток ввода или поток файлов) в строку, на которую указывает str.

Функция C fgets считывает символы до тех пор, пока не встретит конец файла (EOF), символ новой строки или когда будет прочитано n-1 символов.

В этом кратком руководстве будет рассказано, как использовать функцию fgets в программах на языке C.

Основное использование

Общий синтаксис функции C fgets показан ниже:

char * fgets ( char * str, int n, FILE * stream ) ;

Функция принимает три параметра, а именно:

  1. str -указатель на массив символов, куда добавляются считываемые строковые значения.
  2. n -целочисленное значение, определяющее максимальное количество символов, добавляемых к str. Максимальное количество включает завершающий символ null.
  3. stream -указатель, описывающий файловый объект для идентификации входного потока.

Возвращаемые значения Fgets

При успешном выполнении функция вернет str. Если функция обнаруживает ошибку, она возвращает нулевой указатель. Точно так же, если функция завершается из-за EOF без прочитанных символов, она возвращает нулевой указатель.

ПРИМЕЧАНИЕ. Хотя символ новой строки заставляет функцию fgets останавливаться, он по-прежнему включается в скопированную строку как допустимый символ.

Пример функции Fgets

Давайте проиллюстрируем, как использовать функцию fgets в C. Рассмотрим пример кода, показанный ниже:

#include <stdio.h>

intmain() {
FILE *fptr;
char str[100];

//    open file for read
fptr = fopen(«fgets.txt», «r»);
if (fptr == NULL) {
perror(«[-] Error Encountered while opening file!»);
return1;
}
else {
if (fgets(str, 100, fptr) !=NULL){
puts(str);
}
fclose(fptr);
}
return0;
}

В приведенном выше примере функция fgets откроет файл fgets.txt, прочитает первые 100–1 (99) символов и распечатает их на экране.

Если предположить, что содержимое файла fgets.txt следующее:

Hello world!, this is fgets function in C.

Компиляция и выполнение приведенного выше кода должны распечатать строки выше.

СОВЕТ: в отличие от функции gets, функция fgets более безопасна, поскольку она проверяет границы массива, предотвращая переполнение буфера.

Заключение

В этом кратком руководстве описывается, как использовать функцию fgets на языке C для чтения символов из потока до тех пор, пока не будут выполнены определенные условия.

Читайте также:  Строка для двойного преобразования C++ (String to double)
Оцените статью
bestprogrammer.ru
Добавить комментарий