PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Einlesen eines Buchstabes in C



huaba
19.10.2010, 16:11
Hallo,

habe angefagen C zu lernen.
Jetzt bin ich aber vor einem Problem und komm nicht weiter.
Wenn ich einen Buchstaben einlesen will, für eine "if" -Funktion.
Der Text erscheint aber ich kann keinen Buchstaben eingeben, sondern immer gleich "Kein definierter Buchstabe".
Woran kann das liegen?

printf ("Bitte geben Sie ihr Geschlecht ein (m/w): ");
scanf ("%c", &geschlecht);

if(geschlecht == 'm')
.....
else if (geschlecht == 'w')
......
else
{
printf("Kein definierter Buchstabe");
}

huaba

haRd
19.10.2010, 16:38
Du solltest vielleicht die Variable "Geschlecht" deklarieren, bevor du sie verwendest

edit: klar ich meinte "geschlecht", aber daran liegts ja gar nicht

huaba
19.10.2010, 16:40
Ich muss "geschlecht" deklarieren, also kleines "g" und das hab ich schon.

blackberry
19.10.2010, 16:46
Flush Input Buffer (http://cboard.cprogramming.com/c-programming/67891-flush-input-buffer.html)
Bah... zum hundertausendsten-Mal.

zin
19.10.2010, 17:17
Things to Avoid in C/C++ -- scanf, Part 5 - GIDNetwork (http://www.gidnetwork.com/b-59.html)

fred777
21.10.2010, 16:01
Und Gott sprach: nutze strcmp..

aL1ien
22.10.2010, 13:44
Wenn ich einen Buchstaben einlesen will, für eine "if" -Funktion.
Jesus fügte hinzu: "If" ist keine "Funktion" sondern eine "Verzweigung".

Browser
07.11.2010, 23:55
Things to Avoid in C/C++ -- scanf, Part 5 - GIDNetwork (http://www.gidnetwork.com/b-59.html)

Was hat man eig. gegen printf scanf und all seine Abkömmlinge?
Ich finds relativ bequem.

GregorSamsa
08.11.2010, 05:17
Z.B. BOFs

Hu5eL
08.11.2010, 06:47
Und Gott sprach: nutze strcmp..

strcmp für chars? Mit kanonen auf spatzen schiesen?
Zwei chars kann man einfach direkt vergleichen.