C-файл обработки запроса

Итак, у меня есть программа, которая принимает пользовательский ввод и сравнивает его с определенной строкой в ​​файле, однако последняя строка всегда будет указываться как неправильная, так что кто-то может решить эту проблему для меня ?, спасибо.

Содержимое файла (просто список случайных слов)

Baby
Milk
Car
Face
Library
Disc
Lollipop
Suck
Food
Pig

(библиотеки являются stdio, conio и string)

char text[100], blank[100];
int c = 0, d = 0;

void space(void);

int main()
{
    int loop = 0;
    char str[512];
    char string[512];
    int line = 1;
    int dis = 1;
    int score = 0;
    char text[64];

    FILE *fd;

    fd = fopen("Student Usernames.txt", "r");   // Should be test

    if (fd == NULL)
    {
        printf("Failed to open file\n");
        exit(1);
    }

    do
    {
        printf("Enter the string: ");
        gets(text);

        while (text[c] != '\0')
        {
            if (!(text[c] == ' ' && text[c] == ' '))
            {
                string[d] = text[c];
                d++;
            }
            c++;
        }

 string[d] = '\0';
 printf("Text after removing blanks\n%s\n", string);

 getch();

for(loop = 0;loop<line;++loop)
{
    fgets(str, sizeof(str), fd);
}
printf("\nLine %d: %s\n", dis, str);
dis=dis+1;
str[strlen(str)-1] = '\0';
if(strcmp(string,str) == 0 )
 {
 printf("Match\n");
 score=score+2;
 }
     else
     {
     printf("Nope\n");
     score=score+1;
     }
 getch();
 c=0;
 d=0;
}
while(!feof(fd));
printf("Score: %d",score);
getch();
}

Для любого ввода в последней строке вывод всегда будет неправильным, я считаю, что это связано с циклом for, который не превращает его в следующую переменную, но, учитывая, что запись <= делает эту программу хуже, мне действительно просто нужно простое исправление для программы спасибо.

Ответы на вопрос(1)

Ваш ответ на вопрос