C++ Frage: char-Array einlesen mit fgets --> Wieso überspringt er Zeile?
Hallo Zusammen,
ich weiss, vielleicht ist GuteFrage.net nicht unbedingt die richtige Plattform/Forum für die Frage, jedoch weiss ich, dass ich auf GuteFrage eine kompetente und vor allem schnelle Lösung erhalten kann.
Ich bin ein absoluter C++ Anfänger und hab folgendes Problem: Unten habe ich zwei Bilder eingefügt die Einmal den Code und einmal die Ausgabe anzeigt. Problem ist, dass ich mit printf den Namen des Spielers abfragen möchte und mit fgets einlesen will.
Da ich dies in Abhängigkeit mit der Spieleranzahl machen möchte, habe ich das Ganze in eine for-Schleife gepackt, damit er so viele Arrays erstellt, wie bei der Spieleranzahl eingegeben worden sind.
Jedoch überspringt er bei der Konsolenausgabe den ersten Spieler und wechselt gleich zu dem Zweiten über.
Kann mir einer von euch evtl. weiterhelfen und sagen, woran das liegen könnte?
Vielen Dank im Voraus!:)


1 Antwort
ich finds persoenlich leichter etwas auszuprobieren, als direkt die richtige Loesung zu sagen.
Nu habe ich aber keine Lust mir nen Makefile zu schreiben, daher ist meine Frage mit Vorsicht zu geniessen:
kann es sein, dass du bei scanf_s lieber "%i\n" einlesen solltest?
Nehme an du bestaetigst die Eingabe der Zahl mit enter.
Also ich interpretiere das so, dass er als ersten Namen das enter nimmt, was bei der Eingabe davor uebrig geblieben ist.
scanf kann ich leider nicht ohne _s verwenden.. da macht Visual Studio faxen... also Fehlermeldung usw. weil es unsicher ist usw..
mehr als nur Warnungen?
man kann damit Programme produzieren, die man exploiten kann, aber als Uebungsaufgabe ist das evtl nicht schlimm, dann kann man die Warnung ignorieren.
Aber muss ja auch nicht, wenns so funktioniert ist ja gut
Du Genie:D! Vielen Dank! mit \n nach scanf_s hats zwar nicht geklappt, aber ich hab einfach n getchar() nach scanf gemacht, dass er die Eingabe abfängt und danach macht er mit Spieler 1 weiter :). Vielen Dank für deine Hilfe!
kein Thema.
ansonsten gibts auch noch sowas wie fflush oder so aehlich, das laesst alle ein und ausgaben abarbeiten und leert diese auch.
habe mir scanf_s mal genauer angesehen - wenns so nicht geht wuerde ich mal probieren da lieber scanf zu nehmenoder fgets - steige gerade nicht so durch wo die Unterschiede sind, aber je nach Anspruch muss es ja nur funktionieren, oder?