Advertisement
Guest User

zhkakaakka

a guest
Sep 27th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.22 KB | None | 0 0
  1. /*
  2.      Hozza létre az adat2.bin állományt magas szintû fájlkezelõ
  3.      függvények segítségével.Amennyiben a fájl létezik, írja
  4.      fölõl a tartalmát. Ciklus segítségével írja a fájlba int típusú
  5.      adatként az 1000...500 közötti decimális egész értékek közül azokat
  6.      amelyek oszthatók 13mal. a fálj méretét írja ki a képernyõre.
  7.  
  8.      OLvassa ki alacsony szintû féjlkezekõ függvények segítségével
  9.      az adat2.bin állomány tartalmát. Összegezze a kiolvasott értékeket
  10.      és az eredményt írja ki a képernyõre.
  11.  
  12.      A képernyõre kiírt elsõ számot szorozza meg 1millióval,
  13.      és adja hozzá a képernyõre kiírt 2. számot.
  14. */
  15.  
  16. #include <stdio.h>
  17. #include <stdlib.h>
  18. #include <sys/types.h>
  19. #include <sys/stat.h>
  20. #include <unistd.h>
  21.  
  22. #include <fcntl.h>
  23.  
  24. int main()
  25. {
  26.     FILE *fp1;
  27.     int e = 999;        // azert 999 mert 1000-mar nem vizsgaljuk
  28.     int meret = 0;
  29.     fp1 = fopen("./adat2.bin","w+");    //irasra megnyitom
  30.     while(e>500)
  31.     {
  32.         if((e%13)==0)
  33.         {
  34.             fwrite(&e,sizeof(int),1,fp1);               //beleirom a fajlba
  35.             meret = meret + sizeof(int);                // meret meghatarozasa , mivel sizeof(int) = 4 byte , ezért
  36.                                                         //ahanyszor lepörög a ciklus annyiszor +4.
  37.         }
  38.         e--;
  39.     }
  40.     printf("fajl merete: %d\n",meret);
  41.     fclose(fp1);
  42.  
  43.     int f1;
  44.     int r = 1,i = 0;
  45.     int t[1000]={0};
  46.     f1 = open("./adat2.bin",O_RDONLY);
  47.     while(r)
  48.     {
  49.         r = read(f1,&t[i],sizeof(int));
  50.        // printf("tomb elemei: %d\n",t[i]);     // ez nem fontos , de tudod vele ellenorizni , hogy miket toltottel fel.
  51.         i++;
  52.     }
  53.  
  54.  
  55.     int eredmeny = 0;
  56.     i=0;                    // lenullazom az i-t hogy ne irjon bele baromsagokat.
  57.  
  58.     while(i<meret/sizeof(int))                  //i-t addig totlse fel amig a tomb elemei tartanak
  59.     {
  60.         eredmeny = t[i] + eredmeny;                 //tomb elemeit osszeadjuk
  61.         i++;
  62.     }
  63.     printf("Ossezgzes eredmenye: %d\n",eredmeny);
  64.  
  65.     eredmeny = meret*1000000+eredmeny;
  66.     printf("VEgeredmeny: %d\n",eredmeny);
  67.  
  68.     close(f1);
  69.  
  70.     return 0;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement