Можно создать дубликат:
Compare two text files - spellchecking program in Cреализует алгоритм проверки орфографии
Я пишу программу проверки орфографии, которая будет сравнивать текстовый файл пользователя со словарем, чтобы увидеть, если слова, которые они Введенные в словаре.
Словарь проходит один раз, а затем зацикливается на последнем слове. Как я могу снова прокрутить словарь?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main (void)
{
FILE * fp1, *fp2; /* file handle */
char userword[100];
char dictword[100];
char fname[40];
int i, j, ca, cb;
// printf("Enter filename to compare to dictionary:");
// fgets(fname,40,stdin);
// fp1 = fopen(fname,"r");
fp1 = fopen("userdoc.txt", "r"); /* open file for reading, use for
* time being until name input resolved*/
fp2 =fopen("dictionary.txt", "r");
if (fp1 == NULL)
{
printf("Could not open file for output.\n");
return 0;
}
if (fp2 == NULL)
{
printf("Cannot open %s for reading \n", fname);
exit(1); // terminate program
}
for (i=0; userword[i]; i++)
{
fscanf(fp1, "%s", &userword);
printf("The word being checked is %s\n", userword);
j=getc(fp2);
while (dictword[j] != EOF)
{
fscanf(fp2, "%s", &dictword);
/*printf("The first entry in the dictionary is %s\n", dictword); //check if dictionary is looping*/
if(strcmp(dictword, userword) == 0)
{
printf("you spelt \"%s\" correctly \n", dictword);
break;
}
else
{
/*printf("sorry \" %s \" is not in the dictionary\n", userword);*/
}
}
}
fclose(fp1);
fclose(fp2);
return 0;
}
Почему «диктофон» такой большой? вы всегда читаете в начале? И вы скомпилировали все предупреждения? Вы скомпилировали для отладки? Вы использовали ваш отладчик для выполнения вашей программы шаг за шагом? Вы можете протестировать его небольшим файлом dictionnary (из нескольких слов) –
, вам, возможно, придется обратиться к [this] (http://stackoverflow.com/questions/8576785/how-do-i-reset-a-while-loop) .. Это может не решить вашу проблему, но даст вам хорошие подсказки! –
Он сравнивает первые несколько слов в userdoc по мере необходимости. если я печатаю слово, которое читает словарь, он показывает, что он застрял в последней записи и бесконечно печатает его на экране. При компиляции кода никаких предупреждений нет. – greta