PHP expert |
|
Ik weet niet of er mensen op dit forum C kennen.
Maar voor degenen die het wel kennen...
Ik ben een test-systeem (een soort van quiz zoals op sitemasters) aant maken met C, voor school.
Ik stel telkens de vraag, en stel dan een variabele gelijk aan een cijfer tussen 1 2 of 3 (meerkeuze vragen)... daarna ga ik controleren of ze juist zijn en via struct wegschrijven:
zoals hier wordt getoond:
if(reeks1_vraag1_ == 1){
leerling[1].reeks1_vraag1 = 1;
}else{ leerling[1].reeks1_vraag1 = 0;}
if(reeks1_vraag2_ == 2){
leerling[1].reeks1_vraag1 = 1;
}else{ leerling[1].reeks1_vraag1 = 0;}
if(reeks1_vraag3_ == 2){
leerling[1].reeks1_vraag1 = 1;
}else{ leerling[1].reeks1_vraag1 = 0;}
if(reeks2_vraag1_ == 2){
leerling[1].reeks1_vraag1 = 1;
}else{ leerling[1].reeks1_vraag1 = 0;}
if(reeks2_vraag2_ == 3){
leerling[1].reeks1_vraag1 = 1;
}else{ leerling[1].reeks1_vraag1 = 0;}
if(reeks1_vraag1_ == 1){ leerling[1].reeks1_vraag1 = 1; }else{ leerling[1].reeks1_vraag1 = 0;} if(reeks1_vraag2_ == 2){ leerling[1].reeks1_vraag1 = 1; }else{ leerling[1].reeks1_vraag1 = 0;} if(reeks1_vraag3_ == 2){ leerling[1].reeks1_vraag1 = 1; }else{ leerling[1].reeks1_vraag1 = 0;} if(reeks2_vraag1_ == 2){ leerling[1].reeks1_vraag1 = 1; }else{ leerling[1].reeks1_vraag1 = 0;} if(reeks2_vraag2_ == 3){ leerling[1].reeks1_vraag1 = 1; }else{ leerling[1].reeks1_vraag1 = 0;}
enzovoort...
nu.. als Ik ga kijken in het .dat bestand wordt het weldegelijk weggeschreven, ik gebruik fwrite:
fp=fopen("lln.dat", "wb");
.... //deel code
fwrite(&leerling[1], sizeof(struct leerlingen), 1, fp);
fclose(fp);
fp =fopen("lln.dat", "wb");.... //deel code
en mijn struct is:
struct leerlingen{
int reeks1_vraag1;
int reeks1_vraag2;
int reeks1_vraag3;
int reeks2_vraag1;
int reeks2_vraag2;
int reeks2_vraag3;
int reeks3_vraag1;
int reeks3_vraag2;
int reeks3_vraag3;
int reeks4_vraag1;
int reeks4_vraag2;
int reeks4_vraag3;
}leerling[1];
struct leerlingen{ int reeks1_vraag1; int reeks1_vraag2; int reeks1_vraag3; int reeks2_vraag1; int reeks2_vraag2; int reeks2_vraag3; int reeks3_vraag1; int reeks3_vraag2; int reeks3_vraag3; int reeks4_vraag1; int reeks4_vraag2; int reeks4_vraag3; }leerling[1];
normaal gezien werkt dit, en nu, als ik dan de gegevens wil oproepen, gebruik ik weer dezelfde struct en dan gewoon fread... maar dit werkt niet. Als ik nu, zoals het hoort, dit doe:
fp=fopen("lln.dat", "rb");
fread(&leerling[1], sizeof(struct leerlingen), 1, fp);
fp =fopen("lln.dat", "rb");
Dan blijft ie rustig hangen bij het uitvoeren vh bestand, het compileren werkt wel
maar als ik dit doe blijft ie niet hangen:
fp=fopen("lln.dat", "rb");
fread(&leerling[0], sizeof(struct leerlingen), 1, fp);
fp =fopen("lln.dat", "rb");
de &leerling[1] wordt $leerling[0]
wat totaal nergens opslaat, want bij het wegschrijven is het 1... maar swat, het voort het uit, maar het geet totaal de verkeerde waarde weer, dus ik denk dat het aan het weergeven ligt, maar het kan ook het wegschrijven... weet iemand toevallig wat de fout is?
|