Gå til innhold

Hjelp til å lese poster fra en binærfil


Anbefalte innlegg

Programkoden min er som følgende

#include <fstream.h>

#include <iostream.h>

#include <conio.h>

 

struct Persontype {

char Navn[60];

char Personnr[12];

short int Lonnstrinn;

bool Gift;

};

 

int main()

{

ifstream Innfil;

int I;

Persontype Post;

 

 

Innfil.open("J:\personal.bin", ios::out | ios::binary);

if(Innfil==0) {

cout << "Kan ikke opne filen\n\nTrykk en tast... "; getch();

return 1;}

 

while(Innfil.read((char *)Post.Navn, sizeof(Post.Navn))) {

cout << Post.Navn << ' '; }

 

 

 

Innfil.close();

 

 

cout << "\n\nTrykk en tast..."; getch();

return 0;

}

Nå er ikke jeg helt stødig i binærfiler, men alt jeg får ut av kompendiet mitt er at det har noe med ascii kode 13 å gjøre.

 

Hadde vært ønskelig med en forklaring på hvordan jeg kan skrive ut navnene uten å få masse skrot og debughoo's imellom.

Endret av Ant1
Lenke til kommentar
Videoannonse
Annonse

Det første jeg ser er at du bare leser navnet på posten og det blir galt (med mindre du bare skriver navnet til filen). Du må lese hele posten dvs. nøyaktig det samme som du skriver til filen.

 

Jeg er ikke helt sikker på hvor ascii kode 13 (koden til return og line end) kommer inn.

 

Det kan være du får problemer siden kompilatoren ofte padder, du kan prøve å bytte ut short int og bool med int.

 

Lykke til, binære filer kan ta litt tid å lære seg, men det er kjekt å kunne.

Lenke til kommentar
Det første jeg ser er at du bare leser navnet på posten og det blir galt (med mindre du bare skriver navnet til filen). Du må lese hele posten dvs. nøyaktig det samme som du skriver til filen.

Filen er allerede fredig skrevet med en struktur som er gitt før int main(). Jeg har lyst til å vite hvordan jeg kan få lest navnene som er i filen fortløpende. Noe jeg får litt halveis til på denne måten (kommer maange tegn og tall) mellom halve navn.

Lenke til kommentar
Det første jeg ser er at du bare leser navnet på posten og det blir galt (med mindre du bare skriver navnet til filen). Du må lese hele posten dvs. nøyaktig det samme som du skriver til filen.

Filen er allerede fredig skrevet med en struktur som er gitt før int main(). Jeg har lyst til å vite hvordan jeg kan få lest navnene som er i filen fortløpende. Noe jeg får litt halveis til på denne måten (kommer maange tegn og tall) mellom halve navn.

 

Hvis jeg ikke har oppfattet deg feil så er det overhode ikke rart du får det sånn halveis til siden du leser hele datastrukturen som navn etter navn. Du må lese datastruktur som datastruktur, så kan du dra navnet ut av strukturen.

 

Har du mulighet til å laste opp hele programmet (helst som vedlegg).

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...