File kezelés (írás) C-ben?
Az egyik gyakorlati órán vettük a file-ba való írást, de sajnos arról lemaradtam csak a file olvasása anyag van meg, ami így néz ki:
#include <stdio.h>
#include <stdlib.h> //exit utasítás miatt
//Fájlkezelés 2: olvasás
typedef struct{
char nev [30];
int kor;
float erettsegi;
}ADATTIP;
ADATTIP klubtag;
int main (){
FILE *f; //logikai fájlnév
char fiznev [40]; //fizikai fájlnév
int i, n;
printf("Mi a neve a nyilvantarto fajlnak?");
gets(fiznev);
f=fopen(fiznev,"rb");
if(f==NULL) //hibakezelés
{
printf("\n A fajlt nem sikerult megnyitni!");
exit(3);
}
printf("\n A klubtagok: \n");
while(!(feof(f))) //amíg nem a fájl végén vagyunk (fájlvégjelet keres) végigszalad a fájlon
{
fread(&klubtag, sizeof(klubtag),1,f); //fájlból olvasás
printf("\n %s tag", klubtag.nev);
printf(" %d eves", klubtag.kor);
printf("% 4.2f atlagra erettsegizett.", klubtag.erettsegi);
}
fclose(f);
printf("\n A fajl sikeresen bezarva.");
return 0; //fájl lezárás, adatok mentése
}
Nem tanuljuk valami magas színvonal a programozást, ezért kérnék egy is segítséget.
Ennek, hogy néz ki az a változata amikor létrehozzuk a file-t?
Előre is köszönöm!
Sajnos C nyelvet nem ismerem, gondolom "fcreate"-vel kell létrehozni, megnyitni pedig fopen(wb), majd "fwrite"-vel írni bele, nézd meg ezeket, hátha működnek.
Biztosan hamarosan jár erre hozzáértő és megírja helyesen.
Az fopen() létrehozza a fájlt, ha nem létezik. Azt ugyanúgy kell használni, mint az olvasásnál, de a 2. paramétere "wb".
Az fread() helyett pedig az fwrite()-ot kell használni. Ennek hasonló a paraméterezése, mint az fread()-nek. A legvégén meg lezárod fclose()-zal.
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!