Ho già provato a ricreare il file....

cmq ho migliorato le cose:

codice:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 100

struct dati
{
    char codice[4];
    int portata;
};
typedef struct dati codiceautocarro;


int main()
{
    FILE *autocarri;
    int pesospedizione=0,i=0;
    codiceautocarro a[MAX];

    autocarri=fopen("codice.txt","r");
    if(autocarri==NULL)
    {
        printf("\n\nErrore nell'apertura del file\n\n");
        exit(1);
    }
    printf("\nInserire il peso della prossima spedizione da effettuare >");
    scanf("%d",&pesospedizione);

    while (fscanf (autocarri, "%s %d", a[i].codice,&a[i].portata)!=EOF && i < MAX)
    {
        fscanf(autocarri, "%s %d", a[i].codice,&a[i].portata);
        i++;
    }
    printf("Sono stati letti %d autocarri\n",i);


    fclose(autocarri);
return 0;
}
ora mi stampa 10 invece di 5....e se aggiungo una riga al file mi stampa 11....quindi ne legge 5 in più di default!L'unico problema potrebbe essere il file?Io ho un mac, scrivo su textedit e poi converto in txt, può essere quello il problema?