Informatică, întrebare adresată de ramonica2272, 8 ani în urmă

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ăspunsuri la întrebare

Răspuns de Apollyon
0

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.

Alte întrebări interesante