file_demoC++.cpp

  1  #include <iostream>
  2  #include <fstream>
  3  #include <map>
  4  #include <vector>
  5  
  6  using namespace std;
  7  
  8  struct adat
  9  {
 10      string act;
 11      int h;
 12  };
 13  
 14  struct szotar_adat
 15  {
 16      int a, b;
 17      string nev;     // pl.: 5 6 Béla 10
 18      int c;
 19  };
 20  
 21  int main()
 22  {
 23      setlocale(LC_ALL, "");
 24      vector<adat> StructAdat;
 25      vector<vector<int>> szamok;
 26      ofstream fki;       // fájlváltozó kií­ráshoz (o - output)
 27      fki.open("teszt.txt");
 28      // kií­rás úgy megy, mintha a képernyőre írnánk...
 29      cout << "------------------------- Kií­rás a teszt.txt-be! -------------------------" << endl;
 30      fki << "nyitás\n";
 31      fki << "zárás\n";
 32      fki << "nyitvatartás\n";
 33      fki.close();
 34  
 35      cout << "------------------------- Olvasás a teszt.txt-ből! -------------------------" << endl;
 36      ifstream fbe;       // fájlváltozó olvasáshoz (i - input)
 37      fbe.open("teszt.txt");
 38      string sor;
 39      while(getline(fbe,sor))     // egy teljes sort olvas be, de az entert nem, addig amí­g van sor...
 40          cout << sor << endl;
 41  
 42      fbe.close();
 43  
 44  
 45      cout << "------------------------- Olvasás a teszt2.txt-ből egy struktúra elemű vektorba! -------------------------" << endl;
 46      adat temp;
 47      fbe.open("teszt2.txt");
 48      while(fbe>>temp.act and fbe>>temp.h)
 49      {
 50          StructAdat.push_back(temp);
 51          //cout << temp.act << " " << temp.h << endl;
 52      }
 53      fbe.close();
 54      for(auto &elem:StructAdat)
 55      {
 56          cout << elem.act << " " << elem.h << endl;
 57      }
 58      cout << "------------------------- Olvasás a teszt3.txt-ből egy mátrixba! -------------------------" << endl;
 59      // fájlváltozó olvasáshoz (i - input)
 60      fbe.open("teszt3.txt");
 61  
 62      int temp_szam;
 63      vector<int> v;
 64      int i=0;
 65      while(fbe>>temp_szam)
 66      {
 67          v.push_back(temp_szam);
 68          i++;
 69          if(i%5==0)
 70          {
 71              szamok.push_back(v);
 72              v.clear();
 73              i=0;
 74          }
 75      }
 76  
 77      for(auto &vect:szamok)
 78      {
 79          for(auto &elem:vect)
 80          {
 81              cout << elem << " ";
 82          }
 83          cout << endl;
 84      }
 85  
 86      fbe.close();
 87  
 88      cout << "------------------------- Olvasás a teszt4.txt-ből egy szótárba! -------------------------" << endl;
 89      // fájlváltozó olvasáshoz (i - input)
 90      fbe.open("teszt4.txt");
 91  
 92      map<int,vector<szotar_adat>> szotar;    // ez lesz a szótárunk: kulcs integer, bejegyzés vektor
 93      szotar_adat temp_sz;                    // ebbe olvassuk be a fájl sorait ideiglenesen
 94      int id;                                 // ez lesz a szótárunk kulcsa: az első adat egy sorból
 95      while(fbe>>id&&fbe>>temp_sz.a&&fbe>>temp_sz.b&&fbe>>temp_sz.nev&&fbe>>temp_sz.c)
 96      {
 97          szotar[id].push_back(temp_sz);          // szótár feltöltése: a szótár "bejegyzése" egy vector, az adott fájlsorból képezve...
 98      }
 99      fbe.close();
100  
101      for(auto elem:szotar)
102      {
103          cout << elem.first << ":" << endl;      // first a kulcs
104          for(auto e:elem.second)                 // second a kulcshoz tartozó vektor
105          {
106              cout << e.a << " " << e.b << " " << e.nev << " " << e.c << endl;
107          }
108          cout << "----------------------" << endl;
109      }
110  
111      return 0;
112  }