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, который не превращает его в следующую переменную, но, учитывая, что запись <= делает эту программу хуже, мне действительно просто нужно простое исправление для программы спасибо.