我制作了一个链接列表。它的元素保留上一个和下一个项目的地址。它从输入文件中获取命令。它检测命令并使用以下语句作为参数。(文本: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 天。你觉得我做错了什么?