Salve a tutti... sono nuovo di qui ed ho appena iniziato a programmare.
ho un problemino con un programma che sto creando, il programma dovrebbe gestire una elenco di automobili e ogni auto è composta dalle voci marca, modello, cilindrata, anno.

fin qui tutto bene ma c'è un problema nella parte del codice che carica la lista di auto da un file esterno

ecco qui il codice:

for(int i=0; i<4; i++) {
fgets(stringa, 35, load);
printf("%s", stringa);
strncpy(macchina[i].marca, (strtok(stringa, "|")), 20);
strncpy(macchina[i].modello, (strtok(NULL, "|")), 20);
strncpy(macchina[i].cilindrata, (strtok(NULL, "|")), 4);
printf("%s\n", macchina[i].cilindrata);
strncpy(macchina[i].anno, (strtok(NULL, "|")), 4);
}
questo è il contenuto del file:
Fiat|Panda|1300|2008
Fiat|Palio|1100|1999
Nissan|Skyline|2500|1998
Lamborghini|Gallardo|3500|2007
praticamente quando eseguo il programma l'output su schermo è questo:
Fiat|Panda|1300|2008
1300?
Fiat|Palio|1100|1999
1100???
Nissan|Skyline|2500|1998
2500
Lamborghini|Gallardo|3500|20073500-??????
NB i punti di domanda sono caratteri casuali

se poi scelgo di visualizzare l'intera lista di auto appare una roba del genere
Marca: Fiat
Modello: Panda
Cilindrata: 13002008Fiat
Anno: 2008Fiat
e cosi via per tutte le auto... perchè???

PS se serve posso postare l'intero codice ma sono più di 100 righe