Fopen (jazyk C): Rozdiel medzi revíziami
Skočit na navigaci
Skočit na vyhledávání
d (→Príklad) |
d (→Príklad) |
||
(9 medziľahlých úprav od 4 ďalších používateľov nie je zobrazených) | |||
Riadok 1: | Riadok 1: | ||
{{Funkcie jazyka c}} | {{Funkcie jazyka c}} | ||
__NOTOC__ | __NOTOC__ | ||
− | ==Funkcia | + | ==Funkcia fopen== |
<properties> | <properties> | ||
knižnica=stdio.h | knižnica=stdio.h | ||
Riadok 11: | Riadok 11: | ||
FILE *fopen(const char *filename, const char *mode) | FILE *fopen(const char *filename, const char *mode) | ||
</source> | </source> | ||
+ | |||
==Podrobný popis funkcie== | ==Podrobný popis funkcie== | ||
− | + | Funkcia otvorí daný súbor u určitom režime. | |
==Parametre== | ==Parametre== | ||
Riadok 43: | Riadok 44: | ||
==Príklad== | ==Príklad== | ||
− | Príklad zobrazuje, ako otvoriť súbor na čítanie a zapisovanie. V príklade sú použité | + | Príklad zobrazuje, ako otvoriť súbor na čítanie a zapisovanie. V príklade sú použité aj funkcie [[Fprintf (jazyk C)|fprintf]], [[Getc (jazyk C)|getc]], [[Fclose (jazyk C)|fclose]] a [[Feof (jazyk C)|feof]]. |
<source lang="c" line> | <source lang="c" line> | ||
#include <stdio.h> | #include <stdio.h> | ||
Riadok 49: | Riadok 50: | ||
int main() { | int main() { | ||
− | + | FILE * subor; | |
− | + | ||
− | + | subor = fopen("C:\\Users\\User\\Desktop\\test.txt", "w+"); //otvorenie súboru pre zapisovanie (sem zadajte vlastné umiestnenie súboru) | |
− | + | ||
− | + | if (subor) { //overenie, či je súbor naozaj otvorený | |
− | + | fprintf(subor, "Ahoj svet!"); //zapisovanie do súboru | |
− | + | printf("Text zapisany do suboru.\n"); | |
− | + | fclose(subor); //zatvorenie súboru | |
− | + | } else { | |
− | + | printf("Subor sa nepodarilo otvorit.\n"); | |
− | + | } | |
− | + | ||
− | + | subor = fopen("C:\\Users\\User\\Desktop\\test.txt", "r"); //otvorenie súboru pre čítanie (sem zadajte vlastné umiestnenie súboru) | |
− | + | if (subor) { //overenie, či je súbor naozaj otvorený | |
− | + | printf("Text zo suboru: "); | |
− | + | char c; | |
− | + | while (!feof(subor)) { //opakuje, pokiaľ nenájde koniec súboru | |
− | + | c = getc(subor); //načítanie jedného znaku zo súboru | |
− | + | printf("%c", c); //vypísanie načítaného znaku na obrazovku | |
− | + | } | |
− | + | fclose(subor); //zatvorenie súboru | |
− | + | }else{ | |
− | + | printf("Subor sa nepodarilo otvorit.\n"); | |
− | + | } | |
− | + | return 0; | |
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
</source> | </source> | ||
− | Výstup: | + | ''Výstup:'' |
Text zapisany do suboru. | Text zapisany do suboru. | ||
Text zo suboru: Ahoj svet! | Text zo suboru: Ahoj svet! | ||
− | == | + | ==Referencie== |
Aktuálna revízia z 23:18, 19. máj 2020
<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.
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 } else {
14 printf("Subor sa nepodarilo otvorit.\n");
15 }
16
17 subor = fopen("C:\\Users\\User\\Desktop\\test.txt", "r"); //otvorenie súboru pre čítanie (sem zadajte vlastné umiestnenie súboru)
18 if (subor) { //overenie, či je súbor naozaj otvorený
19 printf("Text zo suboru: ");
20 char c;
21 while (!feof(subor)) { //opakuje, pokiaľ nenájde koniec súboru
22 c = getc(subor); //načítanie jedného znaku zo súboru
23 printf("%c", c); //vypísanie načítaného znaku na obrazovku
24 }
25 fclose(subor); //zatvorenie súboru
26 }else{
27 printf("Subor sa nepodarilo otvorit.\n");
28 }
29 return 0;
30 }
Výstup:
Text zapisany do suboru. Text zo suboru: Ahoj svet!