Lettura file xcode

di il
1 risposte

Lettura file xcode

Ciao,ho un problema con la lettura dei file su Xcode!Ho creato il file.txt con il terminale e l'ho messo nella stessa cartella del main.c però quando compilo il programma mi da errore file come se non leggesse il puntatore.Qualcuno potrebbe spiegarmi dove sbaglio?
#include <stdio.h>
#include<stdlib.h>
#include<string.h>
 
#define N 20
 
 
int main()
{
    
    char staz_partenza[N],staz_arrivo[N],ora_partenza[N],ora_arrivo[N],citta[N];
    int treni_in_arrivo,treni_in_partenza,trovato_p,trovato_a,cont,i;
    FILE *fp;
    
    
    fp=fopen("file.txt","r");
    if(fp==NULL)
    {
        printf("errore file");
        return -2;
    }
    
    
    else
    {
        i=0;
        while(fscanf(fp,"%s %s %s %s",staz_partenza,ora_partenza,staz_arrivo,ora_arrivo)!=EOF)
        {
            i++;
        }
        cont=i;
        
        printf("inserisci nome della citta':");
        scanf("%s",citta);
        treni_in_arrivo=0;
        treni_in_partenza=0;
        trovato_a=0;
        trovato_p=0;
        for(i=0;i<cont;i++)
        {
            if(strcmp(citta,staz_partenza)==0)
            {
                trovato_p=1;
                treni_in_partenza++;
            }
            else
            {
                trovato_p=0;
            }
            
            if(strcmp(citta,staz_arrivo)==0)
            {
                trovato_a=1;
                treni_in_arrivo++;
            }
            else
            {
                trovato_a=0;
            }
            
        }
       
        
        if(trovato_a==1)
        {
            printf("numero di treni in arrivo=%d\n",treni_in_arrivo);
        }
        else
        {
            printf("nessun treno in arrivo nella stazione selezionata\n");
        }
        if(trovato_p==1)
        {
            printf("numero di treni in partenza=%d\n",treni_in_partenza);
        }
        else
        {
            printf("nessun treno in partenza nella stazione selezionata\n");
        }
    }
     fclose(fp);
    return 0;
}

1 Risposte

  • Re: Lettura file xcode

    Sembrerebbe essere il modo in cui passi gli argomenti a fscanf, io penso che quello che intendevi fosse:

    while(fscanf(fp,"%s %s %s %s",staz_partenza,ora_partenza,staz_arrivo,ora_arrivo)!=EOF)

    però questo cozza con la dichiarazione degli array perché così come sono dichiarati puoi chiamare fscanf solo per la prima linea del file e allora non ha molto senso il ciclo.

    Se quello che vuoi sono arrays di stringhe, per far funzionare il ciclo while dovresti dichiarare staz_partenza[N][MAX_NOME_LEN] dove MAX_NOME_LEN l'avrai definito prima. Ovviamente lo stesso per gli altri arrays.
Devi accedere o registrarti per scrivere nel forum
1 risposte