Ik heb een programma geschreven dat goed draait onder windows xp, maar nu moet het ook kunn en draaien op een linux omgeving. Ok dat is allemaal leuk en aardig.
Nu ben ik wat aan het experimenteren geweest maar ik kom er toch niet helemaal uit.
Wat is het probleem
Wanneer ik een record uit een binair bestand wil inlezen word het record niet gevuld...
Mijn code
Dat is de code die ik gebruik. Tijdens het compilen geeft hij geen errors, maar als ik hem uitvoer geeft hij de volgende output:
Op zich een leuk getal, maar het is niet degene die ik nodig heb; het allereerste nummer dat in het bestand staat is nummer 1, maar dat wil hij niet weergeven.
hoe kan ik ervoor zorgen dat ik toch dat record te zien krijg?
Nu ben ik wat aan het experimenteren geweest maar ik kom er toch niet helemaal uit.
Wat is het probleem
Wanneer ik een record uit een binair bestand wil inlezen word het record niet gevuld...
Mijn code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| #include <iostream>
#include <fstream>
using namespace std;
struct klantenstruct
{
int nr;
char srt[2];
char naam[26];
char adres[26];
char postcode[7];
char plaats[16];
long banknr;
long giro;
char mutcode[2];
char tariefafspraak[2];
};
int main()
{
klantenstruct test;
ifstream invoer;
invoer.open("B0100.dat", ios::binary);
invoer.read((char *)&test, sizeof(test));
cout << test.nr << endl;
invoer.close();
return 0;
} |
Dat is de code die ik gebruik. Tijdens het compilen geeft hij geen errors, maar als ik hem uitvoer geeft hij de volgende output:
code:
1
| 1107473152 |
Op zich een leuk getal, maar het is niet degene die ik nodig heb; het allereerste nummer dat in het bestand staat is nummer 1, maar dat wil hij niet weergeven.
hoe kan ik ervoor zorgen dat ik toch dat record te zien krijg?