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

 
			
			 
					
					
					
						 Rispondi quotando
  Rispondi quotando 
			
 
						