Я создал связанный список. Его элементы сохраняют адреса как предыдущего, так и следующего элемента. Он получает команды из входного файла. Он обнаруживает команду и использует следующий оператор в качестве параметра. (текст: add_to_front john
-> означает: add_to_front(john)
)
Код: http://pastebin.com/KcAm1y3L
Когда я пытаюсь дать команды из входного файла, он выдает мне один и тот же вывод снова и снова. Однако, если я пишу входные данные в main()
вручную, это работает.
Для исходного входного файла:
add_to_front john
add_to_back jane
add_to_back jane
print
(к сожалению) вывод:
>add_to_front john
>add_to_back jane
>add_to_back jane
>print
jane
jane
jane
Хотя, если я напишу
add_to_front(john);
add_to_back(jane);
add_to_back(jane);
print();
Вместо этой команды проверьте:
while (scanf("%s",command)!=EOF)
{
if (strcmp(command,"add_to_front")==0)
{
gets(parameter);
add_to_front(parameter);
}
else if (strcmp(command,"add_to_back")==0)
{
gets(parameter);
add_to_back(parameter);
}
else if (strcmp(command,"remove_from_back")==0)
remove_from_back(parameter);
...
printf(" HUH?\n");
}
}
В main()
выдает правильный вывод.
Я знаю, это много, чтобы спросить, но эта вещь беспокоит меня в течение 2 дней. Что ты думаешь я делаю не так?