C 在拼写更正程序中检测到堆栈崩溃
我将文件名作为这个函数的参数,我想比较两个txt文件并替换“article”中的一些单词。但是检测到堆栈崩溃编译时发生错误。这个代码有什么问题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, *
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
手册并检查它返回的内容。