getchar() im BCB



  • Wieso muss ich wenn ich 2 mal die Funktion scanf verwende nicht 3 mal getchar verwenden? Nach der Eingabe für die erste scanf Funktion wird Enter gedrückt ebenso nach der zweiten. Also wurde jetzt 2 mal Enter gedrückt, daher sollten die 2 getchar abgearbeitet worden sein und das Programm geschlossen werden. Daher versteh ich nicht, wieso es kein 3. getchar benötigt()?

    Wenn man einmal scanf verwendet, und man wenn man das Programm ausführt und anstatt der geforderten Zahl, da die Funktion scanf("%d", &d); lautet, einen Buchstaben eingibt sind 3 getchar() notwendig damit das Programm nicht sofort geschlossen wird, wieso? Ich danke euch schon im voraus auf die Antwort. Gruss You_mann



  • Ein Programmbeispiel zu meiner Frage:

    #include <stdio.h>

    int main()
    {
    int i, j;

    printf("\nSag mir eine Zahl : ");
    scanf("%d", &i);

    printf("Sag mir noch eine Zahl: ");
    scanf("%d", &j);

    printf("%d + %d = %d\n", i, j, i+j);
    printf("%d - %d = %d\n", i, j, i-j);
    printf("%d * %d = %d\n", i, j, i*j);
    printf("%d / %d = %d\n", i, j, i/j);
    printf("%d %% %d = %d\n", i, j, i%j);
    printf("\n");

    getchar(); getchar(); return 0;
    }



  • Vor oder nach der Eingabe einfach den Tastaturpuffer leeren, dann brauchst du am Schluss auch nur 1 mal das getchar().

    Dein Programm hat übrigens einen Fehler: Was ist, wenn der Anwender als zweite Zahl eine 0 eingiebt??



  • Danke für deine Antwort.

    Das Programm wird geschlossen sobald man durch 0 dividieren will. Ich weiss das ist nicht gerade elegant. Aber da ich in meinem Buch erst im Kabitel 2 stecke, was ich noch nicht wie man eine Meldung wie "Durch 0 darf nicht dividiert werden" ausgeben lässt, wenn jemand 0 als 2. Zahl eingibt. Sobald ich in der Lage bin werde ich den Code abändern.



  • Hmmm du weißt wie man was am Bildschirm ausgibt, das ersehe ich an deinem Code, also dürftest du auch wissen, wie man Meldungen ausgibt. Aber ich schätze mal du weißt noch nicht wie man eine Abfrage macht (if{}else{}), oder?? Wenn doch, dann müsstest du das eigentlich locker hinbekommen.



  • If und else kommen erst im 5. Kapitel im Buch "Programmieren lernen für Teens", mit welchem i C lerne und ich stecke noch im 2. Kapitel. Aber sobald ich weiss, wie man mit if und else umgeht, wird es eine Aenderungen in meinem bescheidenen Rechnungsprogramm geben. PS: Ich bin Dir sehr dankbar für deine Bemühungen.



  • Ooops ich habe meinen Beitrag 2 mal abgeschickt und nun halt editiert, sorry.


Anmelden zum Antworten