Ich habe eine Verknüpfte Liste erstellt. Seine Elemente behalten die Adresse der vorherigen und nächsten Elemente. Er erhält Befehle aus einer Eingabedatei. Es erkennt den Befehl und verwendet die folgende Anweisung als Parameter. (Text: add_to_front john
-> bedeutet: add_to_front(john)
)Eingabe in C mit verknüpften Listen lesen
Code: http://pastebin.com/KcAm1y3L
Wenn ich versuche, die Befehle aus einer Eingabedatei zu geben, es gibt mir gleiche Leistung über und über. Wenn ich jedoch Eingaben in main()
manuell schreibe, funktioniert es.
Für die Ex-Eingabedatei:
add_to_front john
add_to_back jane
add_to_back jane
print
(leider) die Ausgabe:
>add_to_front john
>add_to_back jane
>add_to_back jane
>print
jane
jane
jane
Obwohl, wenn ich
add_to_front(john);
add_to_back(jane);
add_to_back(jane);
print();
Anstelle dieser Befehl Scheck:
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");
}
}
In main()
gibt es die richtige Ausgabe.
Ich weiß, es ist eine Menge zu fragen, aber diese Sache stört mich für 2 Tage. Was denkst du, mache ich falsch?
Verwenden Sie nicht 'gets()', auch im Testcode! ** NIE ** benutzen 'gets()'! –
Debuggen Sie es (mit einem Debugger ...)! – Drakosha