Práca so súborom

Obsah kapitoly:

Otvorenie, zápis, uzavretie.

Začneme príkladom, na ktorom si ukážeme, ako otvoriť súbor, zapísať do neho dáta a uzavrieť ho.

Príklad: Program otvorí súbor „cisla.txt“ v režime zápisu a zapíše do neho čísla 0 až 9, každé na nový riadok.

      #include <stdio.h>
      main()
      {
          int i;
          FILE *fw;       //Definovanie premennej fw, ktorá je typu FILE*(pointer na FILE).
          fw = fopen(“cisla.txt”,”w”);       //Otvorenie súboru “cisla.txt” v režime zápisu “w”.
          for(i=0;i<10;i++)       //Zapísanie desiatich čísel (0 až 9) do súboru “cisla.txt”.
          {
              fprintf(fw,"%d\n",i);
          }
          fclose(fw);       //Uzavretie súboru cisla.txt.
          return (0);
      }

Na príklade vidíte, že sa tu objavil nový typ FILE*, ktorý sme použili na definovanie premennej fw. Funkcia fopen() otvorí súbor cisla.txt a vráti(dá nám) jeho adresu, ktorú priradíme premennej fw, takže premenná fw má v sebe uloženú adresu súboru cisla.txt, budeme tomu hovoriť, že premenná fw ukazuje na súbor cisla.txt, presnejšie povedané na jeho začiatok. Takže fw je ukazovateľ na súbor (pointer na FILE) . Ak súbor neexistoval funkcia fopen() ho vytvorí a otvorí, toto platí len pre režim zápisu ”w“ pri otváraní súboru v režime čítania “r” daný súbor samozrejme musí existovať (nemá zmysel vytvoriť prázdny súbor a potom z neho čítať). Ak sa funkcii fopen() nepodarilo súbor otvoriť, tak nám nevráti jeho adresu, ale symbolickú konštantu NULL(nulový pointer). Teraz, keď je súbor otvorený v režime zápisu, môžeme do neho zapisovať. V našom príp. sme použili cyklus for a funkciu fprintf() na zápis desiatich čísel. Nakoniec treba súbor uzavrieť pomocou funkcie fclose(), ktorá v prípade neúspechu vracia symbolickú konštantu EOF( end of file). Pri písaní programu je vhodné testovať úspešnosť otvorenia a uzavretia súboru. Môžeme to urobiť spôsobom uvedeným v nasledujúcom príklade:

Pr: Predchádzajúci príklad, ale s testovaním úspešnosti otvorenia súboru „cisla.txt“.

      #include <stdio.h>
      main()
      {
          int i;
          FILE *fw;
          if((fw = fopen("cisla.txt","w")) = = NULL)       //Testovanie úspešnosti otvorenia súboru.
              printf("Subor sa nepodarilo otvorit!!!\n");
          for(i = 1; i <= 10; i++)
          {
              fprintf(fw,"%d\n",i);
          }
          if(fclose(fw) = = EOF)       //Testovanie úspešnosti uzavretia súboru.
              printf("Subor sa nepodarilo uzavriet\n");
          return (0);
      }



predošlá kapitola

hore

späť

domov


© Roman Kukučka