opticus Skrevet 18. mars 2005 Skrevet 18. mars 2005 jeg sliter litt med fread. problemet er dette: har en #define DATA_SIZE 50 og en fread(&buf[2],1,DATA_SIZE,tmp_fil) den returerner at den har lest 50, men en fil som ser slik ut: 1 22 333 4444 55555 666666 7777777 88888888 999912345 utskrift av buf gir: 1 22 333 4444 55555 666666 7777777 88888888 99991 og her slutter den ved neste lesing begynner den på 3 som er riktig
GeirGrusom Skrevet 18. mars 2005 Skrevet 18. mars 2005 Det kan være pga størrelsen på buf, er buf char[DATA_SIZE]? isåfall vil du vel miste 3 byte.
kjetil7 Skrevet 18. mars 2005 Skrevet 18. mars 2005 &buf[2] ser mistenkelig ut, men er redd vi trenger litt mer informasjon hvis vi ikke bare skal synse og tippe hva som er feil. Men det er nok noe trøbbel med bufferet ditt. En to-minutters snutt: static const int DATA_SIZE = 50; int main() { char buffer[DATA_SIZE + 1]; size_t bytes_read = 0; FILE* f = fopen("example.txt", "r"); bytes_read = fread(buffer, 1, DATA_SIZE, f); buffer[bytes_read] = 0; printf("%s", buffer); fflush(stdout); system("pause >nul"); // trykk enter (kun windows...) bytes_read = fread(buffer, 1, DATA_SIZE, f); buffer[bytes_read] = 0; printf("%s\n", buffer); fflush(stdout); }
opticus Skrevet 19. mars 2005 Forfatter Skrevet 19. mars 2005 det var størrelsesproblemer på buf ja...
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå