Witam.
Jak w temacie mam problem z lista. Program ladnie przypisuje dane z listy [nie wyskakuje zaden blad], ale juz potem nie radzi sobie z wypisaniem wszystkich elementow. Podejrzewam, ze po prostu niepoprawnie ustawiam wskazniki (nie mam pojecia jak powrocic na poczatek listy).
Oto kod:
#include <stdio.h>
struct towar
{
int id_t;
char *nazwa;
float cena;
int vat;
int status;
struct towar*nastt;
};
typedef struct towar EL_LISTYT;
typedef EL_LISTYT *WSKAZ_TOWAR;
main()
{
char c;
int i=0, j;
WSKAZ_TOWAR wt, w=wt;
FILE*t;
t=fopen("towary.txt", "r");
while((c=fgetc(t))!=EOF)
{
if(c=='\n') ++i;
}
fclose(t);
t=fopen("towary.txt", "r");
for(j=0; j<i; j++)
{
wt=(WSKAZ_TOWAR)malloc(sizeof(EL_LISTYT));
(wt->nazwa)=malloc(20*sizeof(char));
fscanf(t, "%d", &wt->id_t);
fscanf(t, "%s", wt->nazwa);
fscanf(t, "%f", &wt->cena);
fscanf(t, "%d ", &wt->vat);
wt->nastt=NULL;
wt=wt->nastt;
}
fclose(t);
printf("\nOto lista towarow: ");
for(j=0; j<i; j++)
{
printf("\n%d ", w->id_t);
printf("%s ", w->nazwa);
printf("%.2f ", w->cena);
printf("%d\n", w->vat);
w->nastt=NULL;
w=w->nastt;
}
return 0;
}