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;
}