Salve e' la prima volta che posto qualcosa, spero che faccio tutto nella norma
. Chiedo aiuto con questo programma C, non riesco a capire perchè si blocca alla verifica del mio file.
questo è il programma nella sua interezza, ci sono anche gli altri prototipi di funzioni, ma sono solo perchè ho già fatto la bozza del programma finale che mi serve. Grazie mille in anticipo.
PROGRAMMA
codice:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 50
#define M 100
// Definizione del tipo Vettore e Stringa per array di reali e caratteri
typedef double Vettore[N];
typedef char Stringa[M];
// Prototipi delle funzioni
void read_vector(Vettore v, int* n, Stringa nome_file);
void print_vector(Vettore v, int n);
double max(Vettore v,int n);
double min(Vettore v,int n);
double mean(Vettore v, int n);
double var(Vettore v, int n);
int count_null(Vettore v,int n);
void process_vector(Vettore v, int n1, int* n2);
void save_vector(Vettore v, int n, Stringa nome_file);
void read_vector(Vettore v, int *n, Stringa nome_file)
{
register int i;
FILE *fp;
int ret;
fp=fopen(nome_file, "r");
if(fp==NULL)
printf("Errore nell'apewrtura del file.");
else
{
ret=fscanf(fp, "%lf", n);
if(ret!=EOF)
{
printf("\n Numero elementi vettore: %lf\n", n);
if(*n>0)
{
for(i=0; i<*n; i++)
{
fscanf(fp, "%lf", &v[i]);
}
}
}
else
printf("\nIl file e' vuoto!!!!\n");
fclose(fp);
}
}
void print_vector(Vettore v, int n)
{
register int i;
printf("[");
for(i=0;i<n;i++)
{
if(i<(n-1))
printf("%lf,", v[i]);
else
printf("%lf", v[i]);
}
printf("]");
}
int main()
{
Vettore m;
Stringa filename;
int n;
printf("Inserire il nome del file: \n");
gets(filename);
read_vector(m, &n, filename);
print_vector(m, n);
return 0;
}