Ich tippe mal darauf, dass du ein /n aus der vorherigen Eingabe im buffer hast.
In Zeile 24 wird doch nur ein char eingelesen, in meinem Fall das 's', das bestätige ich dann mit Enter, wieso soll jetzt aber das Enter bzw. \n mit als Eingabe zählen?
scanf() statt getchar() schafft hier Abhilfe
Schon, aber wäre in meinem Fall getchar() nicht mehr angebracht?
Nun, 'übersprungen' wird da nix, prüf doch mal mit dem Debugger welchen Wert 'input' dann nach der Zeile hat.
Ich habe noch nie mit einem Debugger gearbeitet, ist es Zeitaufwenig den Umgang mit dem Debugger zu erlernen?
Außerdem muss dein 'weapon' als const char* definiert werden, schließlich weist du dem zeiger die adresse eines speicherbereichs zu, welcher nur gelesen werden darf.
Meinst du das, weil weapon in meinem Fall ein Stingliteral ist?
Ich habe die Zeile Code bereits geändert(um den Buffer-Overflow zu vermeiden).
|
C-/C++-Quelltext
|
1
|
char weapon[12] = "keine";
|
Das 'const' Schlüsselwort kann man doch weglassen, denke ich mal.
Gut, dann gehe ich jetzt noch mal den Code durch um die Fehler zu bereinigen.