C-ben hogyan kell fileműveleteket végrehajtani?
Azt szeretném, ha a keresztnevet és az életkort, miután bekérte, hozzon létre egy data.txt és írja bele, majd zárja be a .txt-t.
Kijavítanátok, ami eddig megvan:
#include<stdio.h>
main()
{
int age;
char knev;
printf("Add meg a korodat!\n",age);
scanf("%d",&age);
printf("Add meg a keresztneved!\n");
scanf("%char",&knev);
*fopen("data.txt", "w");
}
Köszi szépen!
Fájlműveletek: [link]
A név ne csak egy karakter legyen!
Valahogy igy?
#include<stdio.h>
main()
{
int age;
char knev[30];
printf("Add meg a korodat!\n",age);
scanf("%d",&age);
printf("Add meg a keresztneved!\n");
scanf("%char",&knev);
}
Az fopen a memóriában létre fog hozni egy FILE struct-ot, és azt kapod meg ettől az fopen-től, hogy ez a struct hol található a memóriában. Erre nagy szükséged lesz, mert ez a struct tárol információkat magáról a fájlról, gyakorlatilag ennek köszönheted, hogy tudsz bele írni, illetve olvasni.
FILE* f = fopen("Fájlnév", "megnyitás módja");
A Fájlnév egyértelmű, egy abszolút vagy relatív útvonal kell ide.
A megnyitás módja azt írja le, hogy mit akarsz csinálni a fájllal:
- w, ha írni akarod (ha a fájl nem létezik, létrehozza, de ha létezik, felülírja)
- a, ha a meglévő fájlhoz akarsz új tartalmat hozzáfűzni (léteznie kell a fájlnak)
- r, ha olvasni akarod a fájlt.
Ha a fájlt megnyitottuk, azt le is kell zárni:
fclose(f);
Fájlba írni több függvénnyel/eljárással lehet, például:
fputs(f, "a szöveg, amit ki akarsz írni a fájlba");
fprintf(f, "a formátumkód", az értékek, amiket a formátumkódba be akarsz helyettesíteni);
Olvasni belőle például:
fgets(ahol tárolni akarod a beolvasott szöveget, a char tömböd mérete/legfeljebb hány karaktert akarsz beolvasni a lezáró \0 karakterrel együtt, f);
fscanf(f, "formátumkód", ahol tárolni akarod a beolvasott adatokat);
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!