19. april 2007 - 12:07Der er
11 kommentarer og 1 løsning
indlæsning af data
jeg er i gang med et program som skal kunne indlæse nogle data som er gemt fra tidligere... her er først et udsnit at min header #define sz 4000
typedef struct{ int in_use; int dato; char cpr[12]; char fornavn[50]; char efternavn[50]; int vaegt; int hoejde; int puls; }pat_tp;
FILE *datfil; pat_tp pat_db[sz];
jeg bruger denne kode til at gemme datfil = fopen("patientdata.txt", "wb"); if(datfil != NULL){ fwrite(pat_db, sizeof(pat_db), 1, datfil); fclose(datfil); printf("Data gemt"); break; } og denne til at læse den igen. datfil = fopen("patientdata.txt", "rb"); if(datfil != NULL){ fread(pat_db, sizeof(pat_db), 1, datfil); fclose(datfil); printf("data indlæst"); break; } den kan godt gemme, men den nægter at hente dataene ind. den skriver: ERROR: unsupported data type for sizeof() operation ERROR: memory of array buf in fread(buf,size,count,stream) is less than the specified input stream at line 46 in file /media/USB DISK/uni/C programmering/eksamen/main.c
jeg er ikke helt sikker på at min fread er brugt rigtigt... nogle som kan hjælpe?
hmm sjovt... den kan godt indlæse dataene nu men den skriver stadig: ERROR: unsupported data type for sizeof() operation ERROR: memory of array buf in fread(buf,size,count,stream) is less than the specified input stream at line 46 in file /media/USB DISK/uni/C programmering/eksamen/main.c
ERROR: unsupported data type for sizeof() operation Jeg har ikke set denne fejl før, hvilken C/C++ køre du?
ERROR: memory of array buf in fread(buf,size,count,stream) is less than the specified input stream at line 46 in file /media/USB DISK/uni/C programmering/eksamen/main.c Den skal være noget smart for at kunne regne dette ud, og så får den endda forkert resultat, med mindre der er noget data align den ikke fortæller dig.
De 2 breaks du har i dine "if" hvilken funktion har de? break bruges da kun til for, while og switch?
nej koden er delt op i flere forskellige filer... og jeg bruger Ch til at køre mit c program... og de to breaks er der fordi det er kun et udsnit af koden, de to funktion (indlæs/gem data) er en del af en menu hvor jeg bruger en switch...
Jeg tror ikke at fortolkeren kender pat_tp på det sted hvor du læser. Måske mangler der ud at inkludere header-filen? Eller har du en forward-erklæring af pat_tp?
efter hvad jeg kan se, så er da ingen af disse fejl... jeg syntes også det virker underligt at jeg sagtens kan bruge fwrite uden fejl, men ikke fread, selvom de bruges næsten samme sted...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.