Ich bin neu in der Sprache C und ich studiere es in einem Buch von Kim N. King. Es sagt, dass die scanf()
nach Zahlmuster sucht, die die whitespaces ignorieren, aber ich denke, dass es auch Enter-Taste überspringt. Wenn es nach Zeichen sucht, nimmt es natürlich auch das Leerzeichen.Ignoriert die Scanf-Funktion die Eingabetaste, wenn nach% d gesucht wird?
Daher muss ich getchar()
getchar()
verwenden, um den Stream vor dem zweiten scanf()
zu löschen, andernfalls würde der zweite ausgeführt werden, ohne auf Benutzereingaben zu warten.
printf("Enter a char: ");
scanf("%c", &ch1);
getchar();
printf("\nEnter another char: ");
scanf("%c", &ch2);
Wenn ich stattdessen Ziffern suche, habe ich keine Probleme.
Ist meine Annahme (es überspringt die Eingabetaste) richtig?
Was ist "Stichwort eingeben"? Ein Newline-Zeichen ist einer von Leerzeichen. – MikeCAT
Whitespaces sind nicht notwendigerweise einzelne Leerzeichen. 'issspace' sucht nach Leerzeichen, die Zeilenumbrüche, Wagenrückläufe, Zeilenvorschübe, vertikale/horizontale Tabulatoren und einzelne Leerzeichen sind (vielleicht habe ich einige vergessen). – Downvoter
Entschuldigung ich meine Enter-Taste, oder Return-Taste. Ich bearbeite es. – VeVeVez