Se dă un fișier textual. Să se determine dacă există în cadrul acestuia un rând care începe cu litera T. Dacă răspunsul este afirmativ, să se determine numărul primului rând a acestei expresii.

(IN C++).


Răspuns :

Răspuns:

#include <iostream>

#include <fstream>

#include <string>

int main()

{

   int nrLinie{};

   bool conditieIndeplinita{false};

   std::string linieCitita;

   std::ifstream ifstream("date.in");

   if (!ifstream.good())

       exit(EXIT_FAILURE);

   while (std::getline(ifstream, linieCitita))

   {

       nrLinie++;

       if (linieCitita[0] == 'T')

       {

           conditieIndeplinita = true;

           break;

       }

   }

   

   ifstream.close();

   (conditieIndeplinita != false)

       ? std::cout << "Prima linie care incepe cu 'T' este " << nrLinie << std::endl

       : std::cout << "Nu exista nicio linie care incepe cu 'T'!" << std::endl;

   return 0;

}

Explicație:

Deschizi fișierul „date.in” ( așa l-am numit eu, tu poți să-l numești oricum vrei atâta timp cât schimbi și linia de cod ( std::ifstream ifstream("date.in"); ) cu numele fișierului ales de tine ).
Cât timp există linii în fișierul respectiv salvezi linia într-o variabilă de tip std::string, după ce ai salvat-o verifici dacă primul element din șirul ăla de caractere este 'T'. Dacă ai găsit o linie care începe cu 'T' setezi „conditieIndeplinita” la true și dai break ( pentru că-ți cere doar numărul primei linii care îndeplinește această condiție ) și la final afișezi numărul liniei din interiorul fișierului. Dacă nicio linie nu începe cu 'T' afișezi că nu există linii care să îndeplinească condiția.