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:
#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.