zahra315

pr2/fajlovi

May 16th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.98 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <stdlib.h>
  4. using namespace std;
  5.  
  6. struct univerzitet
  7. {
  8.     char naziv[30];
  9. };
  10. struct fakultet
  11. {
  12.     char naziv[30];
  13.     univerzitet univerzitet;
  14. };
  15.  
  16. struct student
  17. {
  18.     int broj_indeksa;
  19.     char ime_prezime[30];
  20.     fakultet fakultet;
  21. };
  22.  
  23. student unosStudenta()
  24. {
  25.     student s;
  26.     cout << "Unesite ime i prezime studenta: " << endl;
  27.     cin.getline(s.ime_prezime, 30);
  28.  
  29.     cout << "Unesite broj indeksaa: " << endl;
  30.     cin >> s.broj_indeksa;
  31.  
  32.     cin.ignore();
  33.     cout << "Unesite naziv univerziteta: " << endl;
  34.     cin.getline(s.fakultet.univerzitet.naziv, 30);
  35.  
  36.     cout << "Unesite naziv fakulteta: " << endl;
  37.     cin.getline(s.fakultet.naziv, 30);
  38.  
  39.     return s;
  40. }
  41.  
  42. void printStudenta(student& s)
  43. {
  44.     cout << "\n============STUDENT============\n";
  45.     cout << "Ime studenta je:  \t\t" << s.ime_prezime << endl;
  46.     cout << "Broj indexa je:   \t\t" << s.broj_indeksa << endl;
  47.     cout << "Naziv univerziteta je:  \t" << s.fakultet.univerzitet.naziv << endl;
  48.     cout << "Naziv fakulteta je:   \t\t" << s.fakultet.naziv << endl;
  49. }
  50.  
  51. void snimiUFajl(char imeFajla[], student student1)
  52. {
  53.     ofstream upis(imeFajla,ios::out | ios::binary);
  54.     cout << "obj std upisujem u fajl " << imeFajla << endl;
  55.     upis.write((char*)(&student1), sizeof(student1));
  56.     upis.close();
  57.     cout << "sadrzaj fajla " << imeFajla << " upisujemo objekat student2" << endl;
  58.     /*if (!(upis.fail()))
  59.     {
  60.         upis << student1.broj_indeksa <<endl << student1.ime_prezime << endl << student1.fakultet.naziv << endl << student1.fakultet.univerzitet.naziv << endl;
  61.     }
  62.     else
  63.         cout << "problem kreiranje datoteke " << endl;
  64.     upis.close();*/
  65. }
  66.  
  67. void procitajIzFajla(char imeFajla[255], student& s)
  68. {
  69.     ifstream ispis(imeFajla, ios::in | ios::binary);
  70.     /*char znak;
  71.     if (!(ispis.fail()))
  72.         while (ispis.get(znak))
  73.             cout << znak;
  74.     else
  75.         cout << "greska " << endl;
  76.     ispis.close();*/
  77.     ispis.read((char*)(&s), sizeof(s));
  78.     ispis.close();
  79. }
  80.  
  81. void main()
  82. {
  83.     //kreiramo objekat kojim cemo upisati sadrzaj u fajl
  84.     student s1 = unosStudenta();
  85.  
  86.     char imeFajla[255];
  87.     cout << "Unesite ime fajla: " << endl;
  88.     cin.getline(imeFajla, 255);
  89.  
  90.     snimiUFajl(imeFajla, s1);
  91.  
  92.     student s2;
  93.     procitajIzFajla(imeFajla, s2);
  94.  
  95.     printStudenta(s2);
  96.  
  97.  
  98.     system("pause");
  99. }
  100.  
  101. ------------------------------------------------
  102.  
  103. #include <iostream>
  104. #include <fstream>
  105. using namespace std;
  106. #include <stdlib.h>
  107.  
  108. char * crt = "\n==========================================================\n";
  109. char * poruka_o_gresci = "Greska prilikom otvaranja fajla!";
  110.  
  111. void UnosSadrzaja(const char * nazivFajla)
  112. {
  113.     cout << crt << "\t\t::UNOS SADRZAJA::" << crt;
  114.     const int max = 200;
  115.     char tekst[max];
  116.     cout << "unesite sadrzaj " << endl;
  117.     cin.getline(tekst, 200);
  118.     ofstream unos(nazivFajla);
  119.     if (!unos.fail()) {
  120.         unos << tekst << endl;
  121.         unos.close();
  122.     }
  123.     else
  124.         cout << "greska pri kreiranju i otvaranju datoteke " << endl;
  125. }
  126.  
  127. void PrikazSadrzaja(const char * nazivFajla)
  128. {
  129.     cout << crt << "\t\t::PRIKAZ SADRZAJA::" << crt;
  130.     ifstream ispis(nazivFajla);
  131.     char znak;
  132.     if (!ispis.fail())
  133.         while (ispis.get(znak))
  134.             cout << znak;
  135.     else
  136.         cout << "greska pri prikazu datoteke " << endl;
  137.     ispis.close();
  138. }
  139.  
  140. void DodavanjeSadrzaja(const char * nazivFajla)
  141. {
  142.     cout << crt << "\t\t::DODAVANJE SADRZAJA::" << crt;
  143.     const int max = 200;
  144.     char noviTekst[max];
  145.     //fajl mora postojati - ios::_Nocreate
  146.     ofstream dodaj(nazivFajla, ios::app, ios::_Nocreate);
  147.     if (dodaj.fail())
  148.         cout << "uspjesno otvoreno " << endl;
  149.     cout << "unesite text " << endl;
  150.     cin.getline(noviTekst, max);
  151.     dodaj << noviTekst << endl;
  152.     dodaj.close();
  153. }
  154.  
  155. void KopiranjeSadrzaja(const char * nazivFajla)
  156. {
  157.     cout << crt << "\t\t::KOPIRANJE SADRZAJA::" << crt;
  158.     const int max = 30;
  159.     char nazivNovogFajla[max];
  160.     char text[200];
  161.     cout << "unesite ime novog sadrzaja " << endl;
  162.     cin.getline(nazivNovogFajla, max);
  163.     ifstream stari(nazivFajla);
  164.     char znak;
  165.     for (int i = 0; i < 200; i++)
  166.     {
  167.         stari.get(znak);
  168.         text[i] = znak;
  169.     }
  170.     stari.close();
  171.     ofstream noviFajl(nazivNovogFajla);
  172.     noviFajl << text << endl;
  173.     noviFajl.close();
  174. }
  175.  
  176. int VelicinaFajla(const char * nazivFajla)
  177. {
  178.     cout << crt << "\t\t::VELICINA FAJLA::" << crt;
  179.     int brojac = 0;
  180.     ifstream kolikoJeFajl(nazivFajla);
  181.     kolikoJeFajl.seekg(0, ios::end);
  182.     brojac = kolikoJeFajl.tellg();
  183.     kolikoJeFajl.close();
  184.     return brojac;
  185.  
  186. }
  187. void PretragaSadrzajaKarakter(const char * nazivFajla)
  188. {
  189.     cout << crt << "\t\t::PRETRAGA::" << crt;
  190.     char trazeni;
  191.     cout << "Unesite znak koji trazite: ";
  192.     cin >> trazeni;
  193.     char znak;
  194.     ifstream fajl(nazivFajla);
  195.     while (fajl.get(znak))
  196.     {
  197.         if (znak == trazeni)
  198.             cout << "trazeni znak " << trazeni << " je na poziciji " << fajl.tellg() << endl;
  199.     }
  200.     fajl.close();
  201. }
  202. void PretragaSadrzajaRijec(const char * nazivFajla)
  203. {
  204.     cout << crt << "\t\t::PRETRAGA::" << crt;
  205.     char trazeni[50];
  206.     cout << "Unesite rijec koju trazite: ";
  207.     cin.getline(trazeni, 50);
  208.     char rijec;
  209.     ifstream ispisRijeci(nazivFajla);
  210.     if (!ispisRijeci.fail()) {
  211.         char * strf = new char[VelicinaFajla(nazivFajla) + 1];
  212.         char c;
  213.         int b = 0;
  214.         while (ispisRijeci.get(c))
  215.         {
  216.             strf[b] = c;
  217.             b++;
  218.         }
  219.         strf[b] = '\0';
  220.         char *r = strstr(strf, trazeni);
  221.         if (r != nullptr)
  222.             cout << "pronadjeno na " << r << endl;
  223.     }
  224.  
  225.  
  226. }
  227. void BrisanjeSadrzaja(const char * nazivFajla)
  228. {
  229.     cout << crt << "\t\t::BRISANJE SADRZAJA::" << crt;
  230.     //...
  231. }
  232. //da li je izbor trebao biti povratna vrijednost?
  233. void prikaziMeni(int & izbor)
  234. {
  235.     do
  236.     {
  237.         cout << crt << "\t\t::MANIPULISANJE FAJLOVIMA::" << crt;
  238.         cout << "1. Upisi sadrzaj u fajl. " << endl;
  239.         cout << "2. Prikazi sadrzaj fajla. " << endl;
  240.         cout << "3. Dodaj novi sadrzaj fajlu. " << endl;
  241.         cout << "4. Kopiraj sadrzaj fajla u drugi fajl. " << endl;
  242.         cout << "5. Pretrazuj sadrzaj fajla (karakter). " << endl;
  243.         cout << "6. Pretrazuj sadrzaj fajla (rijec). " << endl;
  244.         cout << "7. Prikazi velicinu fajla. " << endl;
  245.         cout << "8. Brisi sadrzaj fajla. " << endl;
  246.         cout << "9. Rad sa novim fajlom. " << endl;
  247.         cout << "10. Izadji iz programa. " << crt;
  248.         cout << "Unesite vas izbor: ";
  249.         cin >> izbor;
  250.         std::cin.ignore();
  251.         system("cls");
  252.     } while (izbor<1 || izbor>10);
  253. }
  254.  
  255. void main()
  256. {
  257.     int izbor = 1;
  258.     const int max = 30;
  259.     char nazivFajla[max];
  260.     do
  261.     {
  262.         cout << crt << "\t\t::MANIPULISANJE FAJLOVIMA::" << crt;
  263.         cout << "Unesite ime fajla i ekstenziju: ";
  264.         cin.getline(nazivFajla, max);
  265.         do
  266.         {
  267.             prikaziMeni(izbor);
  268.             switch (izbor)
  269.             {
  270.             case 1:
  271.                 UnosSadrzaja(nazivFajla); break;
  272.             case 2:
  273.                 PrikazSadrzaja(nazivFajla); break;
  274.             case 3:
  275.                 DodavanjeSadrzaja(nazivFajla); break;
  276.             case 4:
  277.                 KopiranjeSadrzaja(nazivFajla); break;
  278.             case 5:
  279.                 PretragaSadrzajaKarakter(nazivFajla); break;
  280.             case 6:
  281.                 PretragaSadrzajaRijec(nazivFajla); break;
  282.             case 7:
  283.                 cout<<"velicina fajla je "<<VelicinaFajla(nazivFajla)<<" bytes"; break;
  284.             //case 8:
  285.                 //BrisanjeSadrzaja(nazivFajla); break;*/
  286.  
  287.             }
  288.         } while (izbor != 9 && izbor != 10);
  289.     } while (izbor != 10);
  290.     system("pause");
  291.    
  292. }
Add Comment
Please, Sign In to add comment