Scanf und Bereichsangaben
-
Hallo Leute
Ich möchte mit scanf etwas einlesenif ( !(sscanf(ZEILE,"%u;%u;%[V A R];......;" ,...,...,&STATUS,...,...,...,...,...,...,...,...)==11){ .... }
STATUS ist ein char
char STATUS = "";
den char den ich dort einlesen will ist als enum deklariert...
enum Status { V, A, R };
die abfrage ist in eine while gebettet, das läuft soweit ganz gut durch, nur wenn aus der funktion rausgesprungen wird ganz am ende, dann kommt ein Fehler:
Run-Time Check Failure #2 - Stack around the variable 'STATUS' was corrupted.
Wie kommt das?
Kann mir jemand helfen?MFG
Luke
-
scanf() mit %[] will kein einzelnes Zeichen zurückgeben, sondern einen String - und dafür reicht der Platz, den du angeboten hast, nicht aus. Du könntest mit %c ein Zeichen einlesen und im Nachhinein kontrollieren, ob es in deinen Wertebereich passt.
-
hmm, ja das habe ich auch schon gedacht, aber wenn ich das mache dann funktioniert irgendwie eine andere Funktion nicht mehr richtig die ich dort auch aufrufe...
bzw die funktioniert schon, aber die parameter die übergeben werden sollen haben die falschen Werte,,,ka wie das kommtmuss ich halt noch rumprobieren, da funktioniert im rest des Programms auch einiges noch nicht, das werde ich erst fixen müssen!
trotzdem danke!