Функция fgets - чете ред от файл

Библиотечната функция fgets чете ред от файл. Описание на библиотечна функция fgets: параметри променлива за прочетен стринг, максимална дължина, поток. Функцията чете ред от файл и записва съдържанието на прочетения ред в променливата за прочетен стринг. Всеки текстов файл е файл с последователен достъп - т.е. такъв файл се чете еднопосочно. Този тип файл съдържа по два служебни символа - за край на ред и преминаване на нов ред. Един ред може да съдържа и само тези два служебни символа - т.е. празен ред. Чрез функция fgets се ограничава максималната възможна дължина в произволен ред в отворения файл, т.е. най-големия брой символи в един ред от този файл. Тези два служебни символа не се извеждат на екрана от конвенционалните текстови редактори. Всеки текстов файл може да съдържа и като последен знак друг служебен знак - за край на файл. За достъп до функция fgets е необходимо свързване с библиотечен файл stdio.h.

Следващата програма съдържа решен пример, илюстриращ работата на библиотечна функция fgets:
#include<iostream>
#include <stdio.h>// FILE pishe se samo s glawni bukwi
using namespace std;

int const
Max=500;//maksimalna dylvina za 1 red - opredelq rabotata na  fgets 

int chete_file(char mas_i[], int &br)
{
   FILE *in;//promenliwa ot tip struktura fail
   char red[Max];
   br=0;//nachalna inicializaciq
/*
//tuk imeto na cheteniq fajl ne e opisano s pylniq si pyt - mas_i
//za da se zadade pyt - kyde tochno se namira ukazaniq fajl se izpolzwa znaka "\"
//no w ezika C++ znakyt "\" e sluveben i za towa se izpolzwa kombinaciqta \\
*/
   if ((in = fopen(mas_i, "rt")) == NULL)//otwarq fajl za chetene rt/r+
   { return 1;//funkciqta wrusha kod za greshka i prekratqwa rabotata si
   }
     fgets (red,Max,in);// fgets chete pyrwiq red ot fajl 
   while (!feof(in))//dokato ne e sreshnat znak za kraj na fajl
   {   cout<<red;//pechara red po red sydyrvanieto na fajl
      br++;//procheten e now red
      fgets (red,Max,in);// fgets chete red ot fajl 
   }//while
   cout<<"Wsichko e procheteno, a redowete otpechatani! "<<endl;
   fclose (in);//zatwarq otworeniq za chetene fajl 
   return 0;
}//kraj na chetene fajl- fgets 

int main(  )
{
   char   mas_i[]="E:\\konkurs\\BC\\BIN\\1.1";
   int dyl,br=0;

  cout<<"Da se syzdade programa, koqto izwevda broq redowe ot sydyrvanieto\n";
  cout<<"na syshestwuwash tekstow fajl. \n";
  cout<<"Ako takyw fajl ne syshestwuwa ili nqma dostyp do nego da se izwede \n";
  cout<<"syotwetno syobshenie za greshka. \n";
  cout<<"Wywedete imeto na fajl: ";cin>>mas_i;
  dyl=chete_file(mas_i,br);

   if (dyl>0)
   {
   cout<<"Greshka. Ne moga da namerq/otworq fajl s ime: "<<mas_i<<".\n";
//drug nachin za izwevdane gr. fprintf(stderr, "Cannot open input file.\n");
//stderr predefinira potoka na danni kym ustrojstwoto, w koeto e startirana
//programata, t.e. syobsheniqta she se izwevdat na ekran
   } else {
   if (br!=0)
    {cout<<"Fajlyt sydyrva "<<br<<" reda.\n";}
    }
system("pause");//chaka natiskane na klawish ot klawiaturata
return 0;
}//kraj na pograma fgets 

Задачи с подобни функции и служебни думи са разгледани в страницата с електронни уроци по информатика - програмиране.
Илюстриране работата на характерни алгоритми можете да намерите в предоставените електронни помагала съдържащи решени примери.



Начало на страницата

 
Размер на шрифта
Increase Font Size Option 3 Reset Font Size Option 3 Decrease Font Size Option 3
Bulgarian Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish
Търсене в сайта: