Главная    Разработка ПО    функции языка Си

Описание функций языка Си

" F "

fabs,fabsf,fabsl 

fclose 

fcloseall 

fdim,fdimf,fdiml 

fdopen 

fegetround 

feof 

ferror 

fesetround 

fgetc 

fgets 

fileno 

finite,finitef,finitel 

fflush 

floor,floorf,floorl 

fma,fmaf,fmal 

fmax,fmaxf,fmaxl 

fmin,fminf,fminl 

fmod,fmodf,fmodl 

fopen 

fpclassify 

fputc 

fputs 

freopen 

frexp,frexpf,frexpl 

fseek 

fseeko 

ftell 

ftello 

All | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

fgets – чтение строки из указанного потока данных.

Синтаксис:

#include < stdio.h >
int fgets (char *str, int n, FILE *stream);

Аргументы:

str - указатель на массив, в который будет помещена считанная строка.
n – максимально допустимая длинна считываемой строки.
stream – указатель на поток данных.

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

В случае успешного чтения строки, возвращается указатель на массив, в который помещены считанные данные (возвращается аргумент s).

Если достигнут конец файла, а данные не были считаны, то возвращается NULL.

Если при чтении данные произошла ошибка, то возвращается NULL, а в переменную errno записывается код ошибки. При этом состояние массива, в который должна была сохраниться считанная строка, неопределенно.

Описание:

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

После последнего прочитанного символа в массив s заносится признак конца строки (нулевой символ).

Если достигнут конец файла и несчитан не один символ или произошла ошибка, то возвращается NULL. Для того, чтобы отличить конец файла от ошибки используются функции feof и ferror.

Пример:

В примере из заранее созданного файла test.txt располагающегося в одной папке с программой считываются данные с помощью функции fgets, пока не будет достигнут конец файла.

В файл заранее записаны следующие строки:
      Тест чтения.
      Проверка работы функции fgets.


Считанные данные и отчет о работе выводятся на консоль.

#include < stdio.h >  //Для printf, fgets, fopen, fclose, feof

int main (void)
{  
   // Переменная, в которую будет помещен указатель на созданный
   // поток данных 
   FILE *mf;
   // Переменная, в которую поочередно будут помещаться считываемые строки
   char str[50];

   //Указатель, в который будет помещен адрес массива, в который считана 
   // строка, или NULL если достигнут коней файла или произошла ошибка
   char *estr;

   // Открытие файла с режимом доступа «только чтение» и привязка к нему 
   // потока данных
   printf (“Открытие файла: ”);
   mf = fopen (“test.txt”,”r”);

   // Проверка открытия файла
   if (mf == NULL) {printf (“ошибка\n”); return -1;}
   else printf (“выполнено\n”);

   printf (“Считаны строки:\n”);

   //Чтение (построчно) данных из файла в бесконечном цикле
   while (1)
   {
      // Чтение одной строки  из файла
      estr = fgets (str,sizeof(str),mf);

      //Проверка на конец файла или ошибку чтения
      if (estr == NULL)
      {
         // Проверяем, что именно произошло: кончился файл
         // или это ошибка чтения
         if ( feof (mf) != 0)
         {  
            //Если файл закончился, выводим сообщение о завершении 
            //чтения и выходим из бесконечного цикла
            printf (“\nЧтение файла закончено\n”);
            break;
         }
         else
         {
            //Если при чтении произошла ошибка, выводим сообщение 
            //об ошибке и выходим из бесконечного цикла
            printf (“\nОшибка чтения из файла\n”);
            break;
         }
      }
      //Если файл не закончился, и не было ошибки чтения 
      //выводим считанную строку  на экран
      printf (“     %s”,str);
   }

   // Закрываем файл
   printf (“Закрытие файла: ”);
   if ( fclose (mf) == EOF) printf (“ошибка\n”);
   else printf (“выполнено\n”);

   return 0;
} 

Результат:

Открытие файла: выполнено
Считаны строки:
           Тест чтения.
           Проверка работы функции fgets.
Чтение файла закончено
Закрытие файла: выполнено


Смотри так же:

fgetc
fgets
fputc
fputs
getc
getchar
gets
getw
printf
putc
puts
putchar
putw
ungetc


Яндекс.Метрика

Рейтинг@Mail.ru