pokushavam da napravim mali podsetnik program za shkolu, i da podatke chuvam u binarnoj datoteci, ali neshto netje
pa netje
evo koda mog programa:
#include <stdio.h>
#include <stdlib.h>
class Obaveze {
char *datum;
char *predmet;
char *note;
public:
Obaveze () {};
Obaveze (char *, char *, char *);
static void dodaj ();
static void listaj ();
};
Obaveze::Obaveze (char *dat, char *pred, char *not) {
datum = dat;
predmet = pred;
note = not;
};
void Obaveze::dodaj () {
char *ulaz1 = new char [];
char *ulaz2 = new char [];
char *ulaz3 = new char [];
FILE *obavezef;
unsigned int veldat;
if ((obavezef = fopen("obaveze.3maj", "r+b")) == NULL) {
obavezef = fopen("obaveze.3maj", "w+b");
veldat = 0;
fwrite (&veldat, sizeof veldat, 1, obavezef);
}
else
fread (&veldat, sizeof veldat, 1, obavezef);
putchar('\n');
printf("Datum obaveze: ");
gets(ulaz1);
printf("Predmet: ");
gets(ulaz2);
printf("Unesi obavezu: ");
gets(ulaz3);
putchar('\n');
veldat++;
Obaveze nova(ulaz1, ulaz2, ulaz3);
fseek(obavezef, 0L, SEEK_END);
fwrite(&nova, sizeof Obaveze, 1, obavezef);
rewind(obavezef);
fwrite(&veldat, sizeof veldat, 1, obavezef);
fclose(obavezef);
};
void Obaveze::listaj () {
unsigned int i;
Obaveze novi;
FILE *obavezef;
unsigned int veldat;
if (!(obavezef = fopen("obaveze.3maj", "r+b")))
exit(1);
fread (&veldat, sizeof veldat, 1, obavezef);
putchar('\n');
for (i=1; i<=veldat; i++) {
printf("%3d.", i);
fread (&novi, sizeof Obaveze, 1, obavezef);
printf(" %s\t%s\t%s\n", novi.datum, novi.predmet, novi.note);
}
fclose(obavezef);
};
void main(void) {
char *ulaz = new char [];
while (1) {
printf("\nKomande programa:\n");
printf("d - Dodaj novu obavezu\n");
printf("l - Prelistaj sve obaveze\n");
printf("i - Izlaz iz programa\n");
printf("Izbor: ");
gets(ulaz);
switch (ulaz[0]) {
case 'd':
Obaveze::dodaj();
break;
case 'l':
Obaveze::listaj();
break;
case 'i':
exit(0);
}
};
}
i o chemu se radi:
kada prvi put pokrenem program, unesem x obaveza itd, i kada nakon toga pokrenem funkciju listaj(), sve radi kako treba,
medjutim, kada izadjem iz programa, i pokrenem ga ponovo, i pokusham da izlistam, on mi prikazhe one unose koje sam
napravio, ali prazne!
satima se muchim, ali nije mi jasno o chemu se radi...
izvinjavam se shto sam postovao ovoliki kod, ali ne znam gde je problem, pa moram da bacim ovde sve da biste vi mogli
da vidite...