Vakario miesto gyventojai laiko namuose daug įvairių gyvūnų. Vienas savininkas gali turėti kelių rūšių gyvūnų. Parenkite programą, kuri sudarytų mieste esančių gyvūnų sąrašą ir surikiuotų pagal jų skaičių mažėjančiai.
Pirmoje pradinių duomenų eilutėje nurodytas gyvūnų savininkų skaičius. Toliau kiekvienoje eilutėje yra gyvūno pavadinimas(15 pozicijų), gyvūnų skaičius ir savininko vardas bei pavardė (20 pozicijų nuo 21 eilutės pozicijos).
Su pačia užduotimi viskas tvarkoje, tik norėčiau susižinoti kaip skaityti duomenis nuo 21 eilutės 20 pozicijų. (Galėčiau parašyti getline, bet jei per egzaminą prireiktų būtent to..)
Pradiniai duomenys:
5
Katinas 3 Petras Rudasis
Pelė baltoji 14 Jurgis Rudasis
Katinas 1 Rita Rudoji
Vilkas pilkas 2 Petras Rudasis
Žiūrkėnas 5 Jurgis Rudasis
#include <iostream>
#include <fstream>
using namespace std;
const char CDfv[] = "Duomenys.txt";
struct Gyvunai {
string pavadinimas; // pavadinimas
int kiek; // gyvūnų kiekis
string savininkas; // savininko vardas ir pavardė
};
//-----------------------------------------------------------------------------
void Skaityti(const char fv[], int & n, Gyvunai Duomenys[]);
//-----------------------------------------------------------------------------
int main() {
int n; // savininkų skaičius
Gyvunai Duomenys[100]; // struktūros tipo masyvas
Skaityti(CDfv, n, Duomenys);
for(int i = 0; i < n; i++)
cout << Duomenys[i].savininkas << endl;
return 0;
}
void Skaityti(const char fv[], int & n, Gyvunai Duomenys[])
{
char eil[21];
ifstream fd(fv); // atidaro skaitymą
fd >> n; // skaito savininkų skaičių
for(int i = 0; i < n; i++) {
fd.ignore(80, '\n'); // praleidžia eilutę
fd.get(eil, 15); // skaito pavadinimą
Duomenys[i].pavadinimas = eil;
fd >> Duomenys[i].kiek; // skaito gyvūnų keikį
fd.get(eil, 20); // skaito savininko vardą bei pavardę
Duomenys[i].savininkas = eil;
}
fd.close(); // uždaro skaitymą
}
Paskutinį kartą atnaujinta 2017-01-23