C 在拼写更正程序中检测到堆栈崩溃

C 在拼写更正程序中检测到堆栈崩溃,c,string,file-handling,C,String,File Handling,我将文件名作为这个函数的参数,我想比较两个txt文件并替换“article”中的一些单词。但是检测到堆栈崩溃编译时发生错误。这个代码有什么问题 void fix_spelling_error(char* dictionary, char* article) { int articleCursor=0, compare, i=0, j, checkSpeller=0, ch; char word[100], sub[100]; FILE *reader, *

我将文件名作为这个函数的参数,我想比较两个txt文件并替换“article”中的一些单词。但是检测到堆栈崩溃编译时发生错误。这个代码有什么问题

    void fix_spelling_error(char* dictionary, char* article)
    {
    int articleCursor=0, compare, i=0, j, checkSpeller=0, ch;
    char word[100], sub[100];
    FILE *reader, *changer;

    reader = fopen(dictionary, "r");
    changer = fopen(article, "r+");

    if (changer != NULL && reader != NULL)
    {
        while(!feof(changer)
        fscanf(changer, "%s", word);


        while (!feof(reader))
        {
            fscanf(reader, "%s", sub);
            compare = strcmp(word, sub);
            if (compare == -1)
            {
                articleCursor = strlen(word);
                fseek(changer, -articleCursor, SEEK_CUR);
                strcpy(word, sub);
                fprintf(changer, "%s", word);
            }
        }
    fclose(reader);
    fclose(changer);
    }
}

while(!feof(changer)fscanf(changer,“%s”,word);
将无法编译。请将您的实际代码作为一个发布。另外,while(!feof(reader))是您的
用法。那么,我如何检查文件结尾条件?请参阅
fscanf
手册并检查它返回的内容。