Salve,
sto cercando di capire come funziona la gestione dei file. Nel seguito cerco di prendere una serie di numeri da un file (che si trova nella cartella dell'eseguibile) e stamparli semplicemente a video.
Se inserisco il nome del file correttamente, il tutto funziona bene. Se però inserisco un nome errato il programma si chiude con il solito errore di windows ( mentre dovrebbe stampare a video un avviso di errore e poi uscire)
Ecco il codice:
codice:
#include<stdio.h>
#include<stdlib.h>
int lettura( int vettn[]);
main()
{
      int vettn[20],i;
      int vettb[20][11];
      int dim;
      dim=lettura(vettn);
      if(dim==-1)
      {
                 printf("Errore nell'apertura del file\n");
                 exit(1);
      }
      else
      {
      for(i=0;i<dim;i=i+1)
      {
                          printf("%d\n", vettn[i]);
      }
      }
      system("pause");

}
int lettura( int vettn[])
{
    int dim,i;
    FILE* f;
    char nome[10];
    printf("Inserire il nome del file\n");
    scanf("%s", nome);
    f=fopen(nome, "r");
    if(f==NULL)
    {
              dim=-1;
    }
    else          
    {
        i=0;
        while(feof(f)==0)
        {
                        fscanf(f,"%d", &vettn[i]);
                        i=i+1;
        }
        dim=i;
    }
    fclose(f);
    return dim;
}