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

A doua linie
Fiind dat un text aflat pe mai multe linii, să se afișeze a doua linie din text.
În cazul în care textul nu conține minim 2 linii se va afișa text prea scurt.

Date de intrare
Un text aflat pe mai multe linii.

Date de ieșire
Pe ecran se va afișa a doua linie din text.

Restricții
Textul va conține maxim 20 de linii, iar fiecare linie conține maxim 100 caractere.
Atunci când textul conține minim 2 linii, fiecare linie va conține minim 1 caracter diferit de spațiu.
Exemplu
Date de intrare
ana invata sa programeze
ea crede ca programarea nu e grea
daca rezolvi suficiente probleme
si esti harnic

Date de ieșire
ea crede ca programarea nu e grea

Ma puteti ajuta va rog, cu o rezolvare in c++ sa utilizeze si string-uri. Multumesc!

Răspunsuri la întrebare

Răspuns de Franz
1

Răspuns:

Programul a fost realizat in C++ folosind biblioteca fstream si iostream. Textul a fost salvat intr-o variabila de tip string conform cerintei. In explicatie sunt definiti pasii urmati.

Explicație:

In fisierul 'linia2.cpp' este descris programul realizat. Avem o variabila de tip int in care retinem numarul de linii. Daca acesta este < 2, atunci afisam codul de eroare cu mesajul 'Text prea scurt'. Numarul de linii l-am aflat parcurgand o copie a fisierului (deoarece metoda getline() imi distruge continutul fisierului, a trebuit sa fac o copie a acestuia pentru a-l parcurge). Dupa ce ne aflam pe a 2-a ramura a if-ului (adica atunci cand avem linii suficiente), apelam de 2 ori metoda getline(f,txt) pentru a stoca in variabila de tip string txt linia curenta (deci sarim de linia 1, ajungem la linia 2, si pe aceasta o stocam in txt, variabila suprascriindu-se la fiecare apel al lui getline)

Anexe:

oanaroxana3: Buna! Iti multumesc, ideea este ca trebuie sa citesc textul de la tastatura....si asta nu stiu cum sa fac .. trebuie sa imi salvez textul gen intr-o matrice..cum zici sa fac ?
VxF: „metoda getline() imi distruge continutul fisierului” — Nu distruge nimic. Ai citit până la sfârșit și state a fost marcat ca atare. Pentru asta ajungea un f.clear(). Și apoi evident sari înapoi la început de stream cu f.seekg(0). Astea ambele după ieșirea din while.
oanaroxana3: Ma poți ajuta cu o rezolvare fără fișiere, te rog... Textul sa fie citit de la tastatura
VxF: Această întrebare nu acceptă alte răspunsuri. Dacă vrei mai multe rezolvări va trebui să întrebi încă odată.
oanaroxana3: Ok, am mai pus intrebare odata!
Alte întrebări interesante