fgets добавляет \n
к строке, которую вы извлекаете от пользователя, когда он нажимает Enter. Вы можете обойти это, используя strcspn
или просто добавив \n
в конец строки, которую вы пытаетесь сравнить.
printf("Please enter put FILE_NAME (foo1, 2, or 3), ls, or exit: \n");
fgets(temp, 8, stdin);
temp[strcspn(temp, "\n")] = '\0';
if(strcmp(temp, "ls") == 0 || strcmp(temp, "exit") == 0)
Это просто заменяет \n
на \0
, но если вы хотите быть ленивым, вы можете просто сделать это:
printf("Please enter put FILE_NAME (foo1, 2, or 3), ls, or exit: \n");
fgets(temp, 8, stdin);
if(strcmp(temp, "ls\n") == 0 || strcmp(temp, "exit\n") == 0)
Но это не так элегантно.