Onderstaan is een deeltje uit een oefening voor het school.
Nu weet ik niet op welke manier ik kan bepalen
hoeveel records er al in een file zijn geschreven.
Hier doe ik het met de VAR y.
Maar dit moet toch ook anders op te lossen zijn,
want als ik het programma opnieuw open,
staat y weer op 0, terwijl er eigenlijk bv al 3records zijn.
En op welke manier werkt
cin.getline( string , 30 , '\n'); juist ?
Wat bij mij slaat het proggy dan volledig door
THX
Nu weet ik niet op welke manier ik kan bepalen
hoeveel records er al in een file zijn geschreven.
Hier doe ik het met de VAR y.
Maar dit moet toch ook anders op te lossen zijn,
want als ik het programma opnieuw open,
staat y weer op 0, terwijl er eigenlijk bv al 3records zijn.
En op welke manier werkt
cin.getline( string , 30 , '\n'); juist ?
Wat bij mij slaat het proggy dan volledig door
THX
C++:
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
| #include <fstream> #include <iostream> #include <string> using namespace std; struct Bestand { char naam[30]; char voornaam[30]; char straat[30]; int nummer; char gemeente[30]; int postnummer; char klas[20]; } bestand; fstream file ("c:\\test.txt", ios::in | ios::out | ios::binary ); int uit; int x , y = 0; void main() { void _ingave(void); void _bijvoegen(void); void _uitlezen(void); void _naam(void); void _klas(void); for(;;) { cout << endl << endl << " 1) Ingave " << endl; cout << " 2) bijvoegen " << endl; cout << " 3) op naam zoeken " << endl; cout << " 4) klas ingave " << endl; cout << " 5) Einde" << endl; cout << " 6) Uitlezen " << endl << endl; int keuze; cin >> keuze; switch(keuze) { case 1: file.seekg(0); _ingave(); break; case 2: file.seekg(0); _bijvoegen(); break; case 3: file.seekg(0); _naam(); break; case 4: file.seekg(0); _klas(); break; case 5: exit (1); break; case 6: file.seekg(0); _uitlezen(); break; } } } void _ingave(void) { for(;;) { cout << endl << " Naam: "; cin >> bestand.naam; if (! (strcmp( bestand.naam , "9"))) break ; cout << " Voornaam: "; cin >> bestand.voornaam; cout << " Straat: "; cin >> bestand.straat; cout << " Nummer: "; cin >> bestand.nummer; cout << " Gemeente: "; cin >> bestand.gemeente; cout << " Postnummer: "; cin >> bestand.postnummer; cout << " Klas: "; cin >> bestand.klas; y++; file.write((char *)(&bestand), sizeof(Bestand)); } } void _uitlezen(void) { for ( x = 0 ; x < y ; x++ ) { file.seekg( x * sizeof(Bestand) , ios::beg); file.read((char *)(&bestand), sizeof(Bestand)); cout << endl << " Naam: " << bestand.naam << endl; cout << " Voornaam: " << bestand.voornaam << endl; cout << " Straat: " << bestand.straat << endl; cout << " Nummer: " << bestand.nummer << endl; cout << " Gemeente: " << bestand.gemeente << endl; cout << " Postnummer: " << bestand.postnummer << endl; cout << " Klas: " << bestand.klas << endl; } } |