Segmentation fault using scanf() [closed]

Three problems here. First

scanf(ifp,"%lf %lf\n",&theta,&Cla);

You’re calling scanf when you look like you want to use fscanf:

fscanf(ifp,"%lf %lf\n",&theta,&Cla);

Second is the file you’re opening:

ifp=fopen(argv[0],"r");

argv[0] is the name of the running executable, which is probably not what you want. If you want the first argument passed in, use argv[1]

ifp=fopen(argv[1],"r");

Last is the definition of main:

double main( char *argv[]){

This is not a valid definition, as it should return an int and have both argc and argv or neither of them:

int main( int argc, char *argv[]){

You should also check that an argument was passed:

if (argc < 2) {
    printf("missing argument\n");
    exit(1);
}

Leave a Comment