C-Programm wird unter Windows nicht richtig ausgeführt.
-
Ich hab jetzt 1h in diesem Forum per SuFu und auch per Querlesen gesucht bin aber nicht fündig geworden. Daher empfinde ich es als angebracht ne Frage zu stellen.
Ich hab nen kleines Spiel für die Konsole programmiert. Programmiert habe ich unter Linux und unter Linux läuft das ganze super und ohne Probleme.
Da ich das Ganze aber auch für Windows haben wollte hab ich mir meinen Code in der *.c Datei gepackt über W-Lan rüber auf den andern PC geschoben und unter Windows in eine *.exe Datei kompiliert. Alles ohne Probleme.
Jetzt starte ich das Spiel und das Spiel bleibt bleibt bei der zweiten Tastaturabfrage stecken und ich weiss nicht warum. Ich hab auch schon nen Bekannten gefragt, der studiert Informatik, und der konnte mir auch keine Lösung nennen.
Fehlerquellen an die ich gedacht habe:
Das Spiel kommt in eine dauerschleife (immer mal wieder passiert)
Aber das kann ja eigentlich nicht sein, da es unter Linux einwandfrei funktioniert.Hier mal der Quellcode, da er sicher hilfreich ist.
Noch kurz zur Information bevor sowas wie "zuviele sinnlose Funktionen", "Code zu unübersichtlich!" kommt: Ich programmiere erst seit kurzem und muss noch meinen programmierstil finden.
Ich weiss, dass ich sicher vieles einfacher, schneller und besser hätte machen können, aber es funktioniert auch so.Ich hoffe ihr versteht mein Problem, Testet es vielleicht mal selbst und könnt mir helfen.
soweit euer
Ae0nPS: Die Rechtschreibfehler im Spiel werden erst dann korrigiert, wenn es auch unter Windows läuft
-
scanf("%s", &beenden);
scanf("%s", &lesen);
scanf("%s", &start);usw. sieht mir gefährlich aus. Mach' mal lieber das & jeweils weg, du arbeitest ja mit einem Array, das du füllen möchtest.
Wenn du mit scanf("%s", beenden); (ohne &) arbeitest, wird die Adresse des Arrays angesprochen, und an die möchtest du ja was schreiben. Das ist äquivalent zu
&(beenden[0]) // Adresse vom ersten Zeichen
Du kennst das sonst sicherlich nur von scanf("%d", &mein_int);
Da musst du die Adresse explizit angeben, bei einem Array bekommst du die aber, wenn du das Array direkt ansprichst und nicht auf ein Element zurückgreifst.kA, ob es daran liegt, aber das ist mir gerade so ins Auge gesprungen.