/* tuot_pal.c */ #include #include #include #include "mjonot.h" typedef struct{ char nimike[20]; double hinta; int kpl; } Tuote_tyyppi; void hopo(void) {double d; scanf("%lf",&d); } /* jotta float scanf -toimisi*/ int rivi_tuotteeksi(char *rivi, Tuote_tyyppi *tuote) { char *p; int j; p = palanen(rivi,"|",&j); poista_tyhjat(p); kopioi_jono(N_S(tuote->nimike),p); p = palanen(NULL,"|",&j); if ( sscanf(p,"%lf",&tuote->hinta) != 1 ) return 1; p = palanen(NULL,"|",&j); if ( sscanf(p,"%d",&tuote->kpl) != 1 ) return 1; return 0; } int tulosta_tuotteet(void) { FILE *f; Tuote_tyyppi tuote; char rivi[80]; f = fopen("TUOTTEET.DAT","rt"); if (!f) return 1; printf("\n\n\n"); printf("-------------------------------------------\n"); while ( !feof(f) ) { if ( f_lue_jono(f,N_S(rivi)) <= OLETUS ) continue; if ( rivi_tuotteeksi(rivi,&tuote) ) continue; printf("%-20s %7.0lf %4d\n",tuote.nimike,tuote.hinta,tuote.kpl); } printf("-------------------------------------------\n"); printf("\n\n\n"); fclose(f); return 0; } int main(void) { if (tulosta_tuotteet()) { printf("Tuotteita ei saada luetuksi!\n"); return 1; } return 0; }