Miért dob ki hibaüzenettel ez a program?
C-ben bináris fájlkezelést kell csinálni FÜGGVÉNNYEL, és nem tudom h milehet a hiba. Függvény nélkül meg tudom csinálni, csak függvénnyel nem.
#include <stdlib.h>
#include <stdio.h>
struct adat{
int id, ar;
char cim[20];
};
void betu(FILE*,struct adat*);
int main(){
struct adat a;
FILE *fp;
fp=fopen("lol.bin", "r+b");
if(fp==NULL) fp=fopen("lol.bin", "w+b");
else fseek(fp,0,SEEK_END);
printf("azon: ");
scanf("%d", &a.id);
while(a.id){
printf("nev: ");
scanf("%s", a.cim);
printf("fiz: ");
scanf("%f", &a.ar);
fwrite(&a, sizeof(a),1,fp);
printf("azon:");
scanf("%d", &a.id);
}
betu(fp,&a);
fclose(fp);
system("pause");
}
void betu(FILE *fp,struct adat *a){
fseek(fp,0,SEEK_SET);
fread(&a,sizeof(a),1,fp);
while(!feof(fp)){
printf("%10d%30s%10.2f\n",a->id,a->cim,a->ar);
fread(&a,sizeof(a),1,fp);
}
}
Azt még véletlenül sem írtad le mi a hibaüzenet.
C-hez nem értek, de ez "void betu(FILE*,struct adat*);" pl biztos hülyeség.
hát sima windows hibaüzenettel kidob az adatbekérés után..semmi extra csak a szoksásos windows hibaüzenet.
void betu(FILE *fp,struct adat *a) ez meg jó ha nem bináris fájlkezelés van, mert úgy működik, csak nekem bináris fájlkezeléssel kell
ha az "a" az pointer (ahogy a függvényben van), akkor ez nem jó:
fread(&a,sizeof(a),1,fp);
ez kell helyette:
fread(a,sizeof(*a),1,fp);
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!