printf / scanf Problem
-
Moin,
bei meinen ersten Schritten in C habe ich ein kleines Problem.
int main() { int var; char var2; printf("Zahl eingeben: "); scanf("%d",&var); printf("%d Sag was: ",var); scanf("%c",&var2); printf("%c",var2); getch(); }
Beim zweiten printf lässt er mich allerdings gar nicht schreiben. Er benutzt stattdessen für var2 auch var.
Was mache ich falsch ?
-
Mach aus
scanf("%c",&var2)
einfach
var2 = getchar()
-
Da hängt noch das '\n' im Eingabebuffer. Wie man das nicht löscht und wie man das löscht findest du in der FAQ: http://www.c-plusplus.net/forum/viewtopic.php?t=39349
-
Danke erstmal für eure Antworten.
Das ist für jemanden der erst die Erste Seite eines C-Kurses durch hat ein bisschen unverständlich, aber ich werde mich mal durchwühlen
Lg
Chris
-
Da hängt noch das '\n' im Eingabebuffer.
Hehe. Das war's.
Vorigen Post von mir ignorieren.
(Wenn ich über scanf() rede, ist's eh meistens falsch)Aber so könnt's auch gehen:
printf("Zahl eingeben: "); scanf("%d\n",&var); // ^^ printf("%d Sag was: ",var); scanf("%c\n",&var2); // ^^ printf("%c",var2);
Besser klingt aber, was c.rackwitz im verlinkten Thread gesagt hat.
Das schreibst du einfach nach jeden scanf()-Aufruf und: Voila.
-
flamer schrieb:
Vorigen Post von mir ignorieren.
Besser nicht. Um ein einzelnes Zeichen einzulesen ist getchar wesentlich eleganter als scanf. Auch wenn das hier nicht das eigentliche Problem ist.