Skočiť na obsah


Programovanie v jazyku C a C#

Návody pre začiatočníkov a pokročilých



Fórum: Škôlka jazyka C
- - - - -
Fotografia

Súbor otvoriť a zatvoriť, vstup a výstup.


FILE *; fopen(); fclose();

Vždy treba najprv definovať premenné typu FILE *.
Potom je vhodné otestovať, či sa súbory, ktoré chceme otvoriť nachádzajú v počítači a na tom mieste, kde ich hľadáme.
Ak chceme otvoriť súbor na čítanie a v počítači sa nenachádza na tom mieste kde ho hľadáme, vytvorí sa nový súbor.

Vždy po ukončení práce so súborom, je potrebné ho zatvoriť.
Súbor môže byť zatvorený počas behu programu, ak už nie je k jeho činnosti potrebný, alebo až na konci programu.

#include <stdio.h>
 
int main(void)
{
    FILE *fr, *fw;
 
    /* ak je subor tam kde ma byt (v tomto pripade v zlozke, v ktorej
       sa nachaduza tento program), bude otvoreny na citanie */
    if ((fr = fopen("DOPIS.TXT", "r")) == NULL) {
        printf("Subor DOPIS.TXT sa nepodarilo otvorit.\n");
        return; /* ukoncenie programu */
    }
 
    /* cinnost, ktora sa s otvorenym suborom vykona */
 
    fclose(fr); // po ukonceni prace so suborom sa vzdy vyzaduje zatvorit ho !!!
 
    /* ak je subor tam kde ma byt (v tomto pripade v zlozke, v ktorej
       sa nachaduza tento program), bude otvoreny na zapis,
       ak sa tam nenachadza, bude vytvoreny a otvoreny na zapis */
    if ((fw = fopen("KOPIA.TXT", "w")) == NULL) {
        printf("Subor KOPIA.TXT sa nepodarilo otvorit.\n");
        return; /* ukoncenie programu */
    }
 
    /* cinnost, ktora sa s otvorenym suborom vykona */
 
    fclose(fw); // po ukonceni prace so suborom sa vzdy vyzaduje zatvorit ho !!!
 
    return 0;
}
vstup a výstup po znakoch - getc() putc()

#include <stdio.h>
main()
{
  FILE *fr, *fw;
  int c;
 
  fr = fopen("ZNAKY.TXT", "r");
  fw = fopen("KOPIA.TXT", "w");
 
  c = getc(fr);   /* čítanie prvého znaku */
  putc(c, fw);    /* zápis prvého znaku */
  putc(getc(fr), fw); /* cítanie a zápis druhého znaku */
 
  fclose(fr);
  fclose(fw);
}
Trik pre čítanie po znakoch až do konca riadku:
while ((c = getc(fr)) != '\n') /* číta znaky až po ENTER, teda '\n', teda prechod na nový riadok */
putchar(c); /* výpis riadku po znakoch na obrazovku */
putc(c, fw); /* zápis do súboru po znakoch */
Trik pre čítanie po znakoch až do konca súboru:
while ((c = getc(fr)) != EOF) /* číta znaky až po EOF, teda po konic súboru */
putchar(c); /* výpis riadku po znakoch na obrazovku */
putc(c, fw); /* zápis do súboru po znakoch */
formátovaný vstup a výstup - fscanf() a fprintf()

formátované čítanie zo súboru:
fscanf(f, "formát", argumenty)
Príklad:
Program prečíta tri double čísla zo súboru DATA.TXT a vypíše na obrazovku ich súčet.
#include <stdio.h>
main()
{
  FILE *fr;
  double x, y, z;
 
  fr = fopen("DATA.TXT", "r");
  fscanf(fr, "%lf %lf %lf", &x, &y, &z); 
  printf("%f\n", x +y +z); 
  fclose(fr);
}
Dá sa ľahko otestovať, či súbor obsahuje všetky tri double čísla:
if (fscanf(fr, "%lf %lf %lf", &x, &y, &z) == 3)
printf("%f\n", x +y +z);
  else
printf("Súbor DATA.TXT neobsahuje tri reálne čísla.\n");
formátovaný zápis do súboru:
fprintf(f, "formát", argumenty)
Príklad:
Program vytvorí súbor POKUS.TXT a zapíše do neho čísla 1 - 10, každé na nový riadok.
#include <stdio.h>
main()
{
  FILE *fw;
  int i;
 
  fw = fopen("POKUS.TXT", "w");
  for (i = 1; i <= 10; i++)
fprintf(fw, "%d \n", i);
  fclose(fw);
}
  • 0

Popis: FILE *; fopen(); fclose(); getc(); putc(); fscanf(); fprintf();
Poznámky:
Odkazy:


0 Komentárov


Najlepšie lekcie


Najnovšie pridané lekcie


Najnovšie komentáre


Najviac komentované lekcie


Najviac zobrazené lekcie


Náhodné lekcie


Na tejto stránke bolo užívateľ(ov) za posledných 30 minút

členov, návštevníkov