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