Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <sstream>
- #include <vector>
- #include <cstdlib>
- using namespace std;
- const string FAJLNEV = "spanyolok.txt";
- struct Spanyol;
- bool beolvas(vector<Spanyol> &losLocos);
- void kiir(const vector<Spanyol> &v);
- int leghosszabbKor(const vector<Spanyol> &v);
- int nevHossz(Spanyol s);
- struct Spanyol
- {
- string nev;
- int kor;
- };
- int main()
- {
- vector<Spanyol> v;
- if(beolvas(v))
- {
- kiir(v);
- if(v.size() > 0)
- cout << "A leghosszabb nevu spanyol eletkora: " << leghosszabbKor(v) << " esztendo." << endl;
- else cout << "Nincs spanyol." << endl;
- }
- else
- cout << "Hibas fajl" << endl;
- return 0;
- }
- bool beolvas(vector<Spanyol> &losLocos)
- {
- ifstream ifs(FAJLNEV.c_str());
- if(ifs.fail())
- return false;
- string sor;
- while(getline(ifs, sor))
- {
- Spanyol elLoco;
- stringstream ss(sor);
- string s1, s2;
- ss >> s1 >> s2;
- if(ss.fail())
- return false;
- while(!ss.fail())
- {
- elLoco.nev += s1;
- s1 = s2;
- ss >> s2;
- }
- int kor = atoi(s1.c_str());
- if(kor == 0 && s1 != "0" || kor < 0)
- return false;
- elLoco.kor = kor;
- losLocos.push_back(elLoco);
- }
- return true;
- }
- void kiir(const vector<Spanyol> &v)
- {
- for(size_t i=0; i<v.size(); i++)
- cout << v[i].nev << " (" << v[i].kor << ")" << endl;
- }
- int leghosszabbKor(const vector<Spanyol> &v) //ef: v.size > 0
- {
- size_t ind = 0;
- int max = nevHossz(v[0]);
- for(size_t i=1; i <v.size(); i++)
- {
- if(max < nevHossz(v[i]))
- {
- max = nevHossz(v[i]);
- ind = i;
- }
- }
- return v[ind].kor;
- }
- int
- int nevHossz(Spanyol s)
- {
- return s.nev.size();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement