Hallo Wie man merkt bin ich neu in der C-Programmierung und hab ein ganz einfaches Problem das ich schon nicht lösen kann. Ich habe ein Programm in denen ich Variablen als unsigned int verwende und prüfe die Eingabe mittels Rückgabewert !=1 Damit fange ich falsche Eingaben im Sinne von Buchstaben zB ab. Damit kann ich allerdings nicht verhindern das negative Zahlen eingegeben werden. Wie kann ich das verhindern? Ein Einbau von rw!=1 || x<0 hat das Programm nicht beeindruckt bzw. kann ich trotzdem -12 oder ähnliches eingeben, ohne das die darauf folgende Schleife durchlaufen wird.
Das liegt daran, dass du unisgned int verwendest. Die Variablen von diesem Typ sind alle positiv. Deshalb kann x < 0 niemals true werden. Du schreibst zwar eine -12 rein, aber die Zahl die dann in der Variable steht wird als Positive Zahl interpretiert. -- All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
einliest. Dann kannst du mal versuchen das %d durch %u zu ersetzen. Wenn das nicht klappt, dann musst du wohl int aus unsigned int machen -- All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)