Fopen (jazyk C): Rozdiel medzi revíziami
Skočit na navigaci
Skočit na vyhledávání
| Riadok 52: | Riadok 52: | ||
FILE * subor; | FILE * subor; | ||
| − | subor = fopen("C:\\Users\\User\\Desktop\\test.txt", "w+"); //otvorenie súboru pre zapisovanie (sem zadajte vlastné umiestnenie súboru) | + | 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ý | + | if (subor) { //overenie, či je súbor naozaj otvorený |
| − | fprintf(subor, "Ahoj svet!"); //zapisovanie do súboru | + | fprintf(subor, "Ahoj svet!"); //zapisovanie do súboru |
printf("Text zapisany do suboru.\n"); | printf("Text zapisany do suboru.\n"); | ||
| − | fclose(subor); //zatvorenie súboru | + | fclose(subor); //zatvorenie súboru |
} | } | ||
else { | else { | ||
| Riadok 63: | Riadok 63: | ||
} | } | ||
| − | subor = fopen("C:\\Users\\User\\Desktop\\test.txt", "r"); //otvorenie súboru pre čítanie (sem zadajte vlastné umiestnenie súboru) | + | 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ý | if (subor) { //overenie, či je súbor naozaj otvorený | ||
printf("Text zo suboru: "); | printf("Text zo suboru: "); | ||
char c; | char c; | ||
| − | while (!feof(subor)) { //opakuje, pokiaľ nenájde koniec súboru | + | while (!feof(subor)) { //opakuje, pokiaľ nenájde koniec súboru |
| − | c = getc(subor); //načítanie jedného znaku zo súboru | + | c = getc(subor); //načítanie jedného znaku zo súboru |
| − | printf("%c", c); //vypísanie načítaného znaku na obrazovku | + | printf("%c", c); //vypísanie načítaného znaku na obrazovku |
} | } | ||
| − | fclose(subor); //zatvorenie súboru | + | fclose(subor); //zatvorenie súboru |
} | } | ||
else { | else { | ||
Verzia zo dňa a času 20:35, 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. 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!