verwirrt über getchar und scanf

Ich bin wirklich verwirrt über die Verwendung von getchar() und scanf(). Was ist der Unterschied zwischen diesen beiden?

Ich weiß, dass scanf() [und Familie] Holen Sie sich ein Zeichen durch Zeichen aus der Benutzer [oder file] und speichern es in eine variable, aber tut es das sofort oder nach drücken etwas (Enter)?

ist und ich nicht wirklich verstehen, diesen code habe ich gesehen, dass viele Teile des Codes mit getchar() - und Sie alle lassen Sie Sie geben, was Sie wollen auf dem Bildschirm und keine Reaktion passieren, aber wenn Sie drücken Sie enter es beendet.

int j, ch;

printf("please enter a number : \n");

while (scanf("%i", &j) != 1) {
    while((ch = getchar()) != '\n') ;
    printf("enter an integer: ");
}

Hier in diesem code kann ich nicht verwenden scanf() zu bekommen, ein Zeichen von Charakter und es testen? Auch nicht, was diese Zeile bedeuten?

scanf("%i", &j) != 1

da, wenn ich gedrückt 1 es unterscheidet sich nicht, wenn ich gedrückt 2? was hat es mit diesem Stück zu tun?

und wenn diese Zeile wird passieren?

printf("enter an integer: ");

weil es nie passiert.

InformationsquelleAutor Salahuddin | 2014-01-07
Schreibe einen Kommentar