Wenn ich die Zahl 5 eintrage, muss diese Schleife 5 mal laufen, aber sie läuft 6 mal. Was ist das Problem?
%Vor%Entfernen Sie das nachstehende Leerzeichen aus der% format-Zeichenfolge% co_de, die in der Schleife verwendet wird.
Es bewirkt, dass scanf () alle Leerzeichen löscht, nachdem ein scanf()
( int
) gelesen wurde, bis etwas gefunden wird, das kein Leerzeichen ist. Bei der fünften Iteration der Schleife liest %d
scanf()
und fährt fort, bis kein Leerzeichen mehr gefunden wird. Dies gibt die Illusion, dass man eine ganze Zahl mehr lesen muss.
Beim letzten Aufruf von int
führt ein Nicht-Leerzeichen nach den Integer-Daten zum Ende des Lesevorgangs.
Entfernen Sie den Speicherplatz hier:
Dies:
%Vor%sollte sein:
%Vor% Ich hatte auch ein ähnliches Problem. Um es perfekt zu machen, entfernen Sie bitte die
Leerzeichen nach % d in der Schleife. Es sollte funktionieren. Könnte eine Eigenschaft von scanf
sein.