Fopen (jazyk C): Rozdiel medzi revíziami
Skočit na navigaci
Skočit na vyhledávání
d (→Príklad) |
d (→Príklad) |
||
| (10 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 22: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!