Untitled

 avatar
unknown
plain_text
2 months ago
1.6 kB
7
Indexable
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "myheader.h"

#define MAX 256

void makni_novi_red(char *str) {
    str[strcspn(str, "\n")] = 0;
}

int main() {
    FILE *fp = fopen("racun.txt", "r");
    if (fp == NULL) {
        printf("Greska pri otvaranju datoteke.\n");
        return 1;
    }

    Racun r;
    char buffer[MAX];

    fgets(buffer, MAX, fp);
    makni_novi_red(buffer);
    r.prodavac = (char*)malloc(strlen(buffer) + 1);
    strcpy(r.prodavac, buffer);

    fgets(buffer, MAX, fp);
    makni_novi_red(buffer);
    r.kupac = (char*)malloc(strlen(buffer) + 1);
    strcpy(r.kupac, buffer);

    fscanf(fp, "%d\n", &r.broj_artikala);

    r.artikli = (Artikl*)malloc(r.broj_artikala * sizeof(Artikl));

    for (int i = 0; i < r.broj_artikala; i++) {

        fgets(buffer, MAX, fp);
        makni_novi_red(buffer);
        r.artikli[i].naziv = (char*)malloc(strlen(buffer) + 1);
        strcpy(r.artikli[i].naziv, buffer);

        fscanf(fp, "%f\n", &r.artikli[i].cijena);

        fscanf(fp, "%d\n", &r.artikli[i].kolicina);
    }

    fclose(fp);

    r.ukupan_iznos = 0;
    for (int i = 0; i < r.broj_artikala; i++) {
        r.ukupan_iznos += r.artikli[i].cijena * r.artikli[i].kolicina;
    }

    printf("REZULTATI:\n");
    printf("Ukupan iznos racuna: %.2f\n", r.ukupan_iznos);

    for (int i = 0; i < r.broj_artikala; i++) {
        free(r.artikli[i].naziv);
    }
    free(r.artikli);
    free(r.prodavac);
    free(r.kupac);

    return 0;
}
Editor is loading...
Leave a Comment