imam gadan i nervirajutji problem!
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...












pochetnichki problem sa binarnom datotekom