Вписване в сайта



Задачи за файл

Вторник, 23 Ноември 2010 07:26

Броене на празни редове във файл

Написана от 
Оценете
(0 гласа)

Броене на празни редове във файл

Да се състави програма, чрез която се броят празните редове във файл, т.е. редове, в които няма знаци, четими знаци и/или интервали.

OK

Решение

#include<iostream>
#include <stdio.h>// FILE pishe se samo s glawni bukwi
#include <string>
using namespace std;

int const Max=500;//maksimalna dylvina za 1 red

int chete_file(char mas_i[], int &br)
{
   FILE *in;//promenliwa ot tip struktura fail
   char red[Max];
/*
//tuk imeto na fajla ne e opisano s pylniq si pyt - mas_i
//za da se zadade pyt - kyde tochno se namira fajla se izpolzwa znaka "\"
//no w ezika C++ znakyt "\" e sluveben i za towa se izpolzwa kombinaciqta \\
*/
//fopen - funkciq za otwarqne na fajl; "r" - nachin za otwarqne
   if ((in = fopen(mas_i, "r")) == NULL)//otwarq fajl za chetene rt/r+
   { return 1;//funkciqta wrusha kod za greshka i prekratqwa rabotata si
   }
   while (!feof(in))//EOF end of file dokato ne e sreshnat znak za kraj na fajla
   {  fgets(red,Max,in); //pechara red po red sydyrvanieto na fajla
      cout<<red<<endl;//pechata procheteniq red ot fajla
      if (strlen(red)<2)//wseki red ima pone 1 sluveben simwol
      {br++;
       cout<<"Prazen red "<<br<<":"<<red;
      }//broj prazni redowe
   }//while
   cout<<"Wsichko e procheteno, a redowete otpechatani! "<<endl;
   fclose(in);//zatwarq otworeniq za chetene fajl
   return 0;
}

int main() //nachalo na programata
{
   char  mas_i[]="c:\\dev-cpp\\1.1";
   int dyl,br=0;

cout<<"Da se syzdade programa, koqto se tyrsi broj prazni redowe\n";
cout<<"w sydyrvanieto na syshestwuwash tekstow fajl.\n";
cout<<"Ako takyw fajl ne syshestwuwa ili nqma dostyp do nego da\n";
cout<<"se izwede syotwetno syobshenie za greshka.\n";
cout<<"Izpolzwajte sors koda na swoqta programa za tektow fajl.\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<<"Broj prazni redowe wyw fajla: "<<br<<endl;}
    else cout<<"Wyw fajla nqma prazni redowe!\n";
    }
system("pause");//chaka natiskane na klawish
return 0;//osbovdawa zaetite sistemni resursi i wrysha kod na greshka 0
}//kraj na programata

Прочетена 3086 пъти Последно променена в Събота, 04 Февруари 2012 08:49