Этот код создан, чтобы найти строку в файле, после чего будет получен вход от пользователя, после этого ввода он проверяет, соответствует ли он. Затем он продолжит работу и получит следующую строку и т. Д. Однако, когда я запустил эту программу, она будет работать нормально, за исключением некоторой нечетной причины, номер строки останется на одном, а последнее слово в файле всегда будет иметь ввод «Nope», даже если он правильный. Может ли кто-нибудь сказать мне, что делает последнюю строку всегда неправильной?Что не так с этим кодом? пожалуйста, помогите мне
int main()
{
int loop=0;
char str[512];
char string[512];
int score=0;
int line=1;
FILE *fd;
fd = fopen("Student Usernames.txt", "r");
if (fd == NULL)
{
printf("Failed to open file\n");
exit(1);
}
do
{
printf("Enter the string: ");
scanf("%s",string);
for(loop = 0;loop<line;++loop)
{
fgets(str, sizeof(str), fd);
}
printf("\nLine %d: %s\n", line, str);
str[strlen(str)-1] = '\0';
if(strcmp(string,str) == 0)
{
printf("Match\n");
score=score+2;
}
else
{
printf("Nope\n");
}
}
while(!feof(fd));
fclose(fd);
printf("You scored %d points",score);
getch();
}
Отступ, для начала. –
да, я получаю это много, но никто никогда не говорит, как это сделать правильно – user3267267
Отступ как минимум 4 места для каждого блока. Жалоба была сделана, потому что весь ваш код работает по левому краю. –