We were supposed to extract strings from a provided file, the output matches the expect, but it reports segmentation fault in the end and I don't know why.
    #include<stdio.h>
    #include<string.h>
    int main(int argc, char *argv[]){
        char str[100];
        char f;
        int len = 0;
        FILE *file;
        file = fopen(argv[1],"r");
        //read only here, so use "r"
        if(file==NULL){
            printf("The file doesn't exist.\n");
            return 1;
        }
        while(feof(file)==0){
            //if feof returns 0 it means it havent reaches the end yet
            fread(&f,sizeof(f),1,file);//read in the file
            //printabel character between 32 and 126
            if(f>=32&&f<=126){
                str[len] = f;
                len++;
                continue;//keep doing it(for ->while)
            }
            if(strlen(str)>3){
                //a string is a run of at least 4
                printf("The output is:%s\n",str);
                len=0;//reset
                memset(str, 0, sizeof(str));
                //reset the str so it wont get too big(overflow)
            }
        }
        //close the file and return
        fclose(file);
        return 0;
    }
 
     
    