Ciao a tutti! stamattina mi sono dilettato in questo programma che cerca un elemento del file che risponde ai parametri e lo stampa,la compilazione va a buon fine ma appena lo lancio mi si arresta prematuramente,premetto che stampa il messaggio iniziale ,quindi presumo che l'errore sia nel main,questo è il codice,cosa ho sbagliato?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct ristorante{
char nome[30];
float x;
float y;
};
struct ristorante r;
char nome_rist[30];
float min_distanza=0;
float distanza (struct ristorante r,float x, float y){
float d = (x-r.x)*(x-r.x)+(y-r.y)*(y-r.y);
return d;
}
void ristorantevicino(char *Ristoranti,float x,float y){
printf("Apro il file: %s\n",Ristoranti);
FILE *fp;
fp=fopen("Ristoranti.txt","r");
if (fp== NULL){
printf("File error\n");
}
return;
while (fscanf(fp, "%s %f %f",r.nome,r.x,r.y)){
printf("%s %f :%f\n",r.nome,r.x,r.y);
float d=distanza(r,x,y);
printf("Distanza %f\n",d);
if(min_distanza == 0 || d<min_distanza){
printf("NUova distanza minima %s\n",d);
min_distanza=d;
strcpy(nome_rist,r.nome);
}
}
printf("Risto piu vicino:%s\n",nome_rist);
}
int main(int argc,char *argv[]){
FILE *fp;
float x,y;
printf("Inserisci le coordinate!\n");
sscanf(argv[2],"%f %f ",&x, &y);
ristorantevicino(argv[1], x, y);
system("pause");
return 0;
}