Advertisement
Guest User

Untitled

a guest
Jan 28th, 2015
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <fstream>
  4. using namespace std;
  5.  
  6. /*
  7. Z pliku binarnego zawierajacego dane skopiuj do drugiego pliku
  8. tylko te osoby ktorych nazwisko zaczyna sie na litere K lub P
  9. i ktorych wiek jest wiekszy niz srednia wieku wszystkich osob
  10. */
  11. typedef struct osoba
  12. {
  13. char nazwisko[30];
  14. int wiek;
  15. }osoba;
  16.  
  17. void funkcja(char* sciezka1, char* sciezka2)
  18. {
  19. char zawartosc[1024];
  20. int ile=0;
  21. int suma=0;
  22. int wiek;
  23. float srednia=0;
  24. ifstream plik1;
  25. plik1.open(sciezka1, ios::binary);
  26. if(plik1.fail())
  27. {
  28. cout<<"blad"<<endl;
  29. exit(0);
  30. }
  31. ofstream plik2;
  32. plik2.open(sciezka2);
  33.  
  34. while(plik1.read((char*)&zawartosc, sizeof(zawartosc)))
  35. {
  36. ile++;
  37. suma+=zawartosc.wiek;
  38. }
  39. srednia=suma/ile;
  40.  
  41. for(int i=0; i<ile; i++)
  42. {
  43. if(zawartosc[0] == 'K' || zawartosc[0] == 'P')
  44. {
  45. plik2<<zawartosc[i];
  46. }
  47. if(zawartosc.wiek > srednia)
  48. {
  49. plik2<<zawartosc[i];
  50. }
  51. }
  52.  
  53. plik1.close();
  54. plik2.close();
  55. }
  56.  
  57. int main()
  58. {
  59. char* sciezka1="plik1.bin";
  60. char* sciezka2="plik2.txt";
  61. funkcja(sciezka1, sciezka2);
  62. return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement