Ошибка сегмента при попытке ввода файла в массив - PullRequest
1 голос
/ 25 марта 2019

Я довольно новичок в программировании на C, и я работаю над проектом, в котором мне нужно ввести файл в массив, но когда я запускаю код, это вызывает ошибку seg.Может кто-нибудь, пожалуйста, просмотрите мой код, чтобы выяснить, где я иду не так?Это потому, что я не выделяю достаточно места?Для меня = это логично, но я не уверен, откуда исходит ошибка сегмента.

#define MAX 1000

int checkSpelling(const char *input, const char *dict);
int searchReplace(const char *input, const char *dict);
int save(const char *input, const char *output);

int main (int argc, char **argv){
    int choice = 0;

    if(argc != 4){
            printf("Not enough input arguments in the command line.\n");
            exit(1);
    }

    do{
            printf("Menu\n");
            printf("1. Check the spelling for the file using the dictionary.\n");
            printf("2. Search and replace a given string in the inputed file.\n");
            printf("3. Save the modified file to the output file.\n");
            printf("4. Exit the program.\n");
            scanf("%d", &choice);

            switch(choice){
                    case 1:
                            checkSpelling(argv[1], argv[3]);
                            break;
                    case 2:
                            searchReplace(argv[1], argv[3]);
                            break;
                    case 3:
                            save(argv[1],argv[2]);
                            break;
                    case 4:
                            choice = 4;
                            break;
                    default:
                            printf("Input is invalid");
                            break;
            }

     }while (choice != 4);
return 0;
}

int checkSpelling(const char *input, const char *dict){

    FILE *inputFile;
    FILE *dictFile;
    char temp[MAX] = {0}, dicttemp[MAX];
    int i = 0;
    char *pInput, *pDict;

    printf("Checking the spelling of the inputed file.\n");
    printf("Opening the inputed file...\n");
    if((inputFile = fopen(input, "rt")) == NULL){
            printf("Cannot open file\n");
            exit(1);
    }

    printf("Opening the dictonary...\n");
    if((dictFile = fopen(dict, "rt")) == NULL){
            printf("Cannot open dictionary\n");
            exit(1);
    }

    pInput = (char *)malloc(MAX * sizeof(char));
    pDict = (char *)malloc(MAX * sizeof(char));

    //putting the information from input file into one long array called temp
    while(feof(inputFile)){
            temp[i++] = fgetc(inputFile);
    }
    temp[i] = '\0';

    i = 0;
    for(i = 0; i < MAX; i++){
       printf("%c", temp[i]);
    }
    printf("\n");
    fclose(dictFile);
    fclose(inputFile);
return 0;
}

 int searchReplace(const char *input, const char *dict){

return 0;
 }

//Moves the data from the input file into the output file and saves it
int save(const char *input, const char *output){
    FILE *inputFile;
    FILE *outputFile;

    if((inputFile = fopen(input, "rt")) == NULL){
            printf("Unable to open input file.\n");
            exit(1);
    }

    if((outputFile = fopen(output, "wt"))== NULL){
            printf("Unable to open output file.\n");
            exit(1);
    }

    fclose (inputFile);
    fclose (outputFile);
return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...