Fopen (jazyk C)
Verzia z 20:51, 12. máj 2020, ktorú vytvoril Lukas.p (diskusia | príspevky) (→Podrobný popis funkcie)
<ctype.h> | <limits.h> | <stdio.h> | <stdlib.h> | <math.h> | <string.h> | <time.h> |
---|---|---|---|---|---|---|
isalnum |
printf |
system |
Funkcia fopen
knižnica | stdio.h |
popis | Otvorí daný súbor |
Úplný funkčný prototyp:
FILE *fopen(const char *filename, const char *mode)
Podrobný popis funkcie
Funkcia otvorí daný súbor u určitom režime.
Parametre
- filename
- Umiestnenie súboru vrátane názvu súboru aj s príponou.
- mode
- Režim otvorenia súboru. V tabuľke nižšie sú vypísané všetky dostupné režimy.
Režim | Popis |
---|---|
r | Otvorí súbor len pre čítanie. |
w | Otvorí súbor pre zapisovanie. Ak neexistuje, tak vytvorí nový súbor. V tomto režime sa začne zapisovať na začiatku súboru. |
a | Otvorí súbor pre zapisovanie s funkciou pripájania. Ak neexistuje, tak vytvorí nový súbor. V tomto režime sa začne pripájať text na koniec súboru. |
r+ | Otvorí súbor aj pre čítanie aj pre zapisovanie. |
w+ | Otvorí súbor aj pre čítanie aj pre zapisovanie. Ako prvé vymaže dáta zo súboru, ak existujú, inak vytvorí nový súbor. |
a+ | Otvorí súbor aj pre čítanie aj pre zapisovanie. Ak neexistuje, tak vytvorí nový súbor. Čítanie začne od začiatku, ale zapisovaný text môže byť len pripájaný. |
Ak chcete otvoriť binárne súbory, musíte použiť nasledovné režimy:
"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"
Návratová hodnota
Táto funkcia vráti smerník na FILE, čiže na otvorený súbor. Ak sa však otváranie nepodarilo, tak vráti NULL.
Príklad
Príklad zobrazuje, ako otvoriť súbor na čítanie a zapisovanie. V príklade sú použité aj funkcie fprintf, getc, fclose a feof. Pred spustením príkladu si zmeňte umiestnenie súboru podľa seba.
1 #include <stdio.h>
2 #include <stdlib.h>
3
4 int main() {
5 FILE * subor;
6
7 subor = fopen("C:\\Users\\User\\Desktop\\test.txt", "w+"); //otvorenie súboru pre zapisovanie (sem zadajte vlastné umiestnenie súboru)
8
9 if (subor) { //overenie, či je súbor naozaj otvorený
10 fprintf(subor, "Ahoj svet!"); //zapisovanie do súboru
11 printf("Text zapisany do suboru.\n");
12 fclose(subor); //zatvorenie súboru
13 }
14 else {
15 printf("Subor sa nepodarilo otvorit.\n");
16 }
17
18 subor = fopen("C:\\Users\\User\\Desktop\\test.txt", "r"); //otvorenie súboru pre čítanie (sem zadajte vlastné umiestnenie súboru)
19
20 if (subor) { //overenie, či je súbor naozaj otvorený
21 printf("Text zo suboru: ");
22 char c;
23 while (!feof(subor)) { //opakuje, pokiaľ nenájde koniec súboru
24 c = getc(subor); //načítanie jedného znaku zo súboru
25 printf("%c", c); //vypísanie načítaného znaku na obrazovku
26 }
27 fclose(subor); //zatvorenie súboru
28 }
29 else {
30 printf("Subor sa nepodarilo otvorit.\n");
31 }
32
33
34 return(0);
35 }
Výstup:
Text zapisany do suboru. Text zo suboru: Ahoj svet!