Seite 1 von 1

Fehler bei char-eingabe in do-while-Schleife

Verfasst: Mi Dez 17, 2014 11:37 am
von NRFTW
Hi, ich bin relativ neu bei C und bin hier auf einen ziemlich hartnäckigen Fehler gestoßen. Der Quelltext ist:

Code: Alles auswählen

int main()
{
    int wiederholung;
    char zeichen;

    do
    {
    zeichen=getchar();
    printf("Kontrolle: Zeichen=%c\n", zeichen);

    printf("Möchten Sie das Programm wiederholen?\n");
    printf("Falls ja, geben Sie eine 1 ein, falls nicht eine 0\n");
    scanf("%i", &wiederholung);
    }
    while (wiederholung==1);

    return 0;
}
Den Fehler finde ich schwierig zu beschreiben, deshalb hänge ich einen Screenshot an.
Ich benutze Codeblocks auf Ubuntu 14.04, falls das eine Rolle spielt.

Gruß, NRFTW

Re: Fehler bei char-eingabe in do-while-Schleife

Verfasst: Mi Dez 17, 2014 11:45 am
von cloidnerux
Hi und Willkommen im Forum :D

Hier ist die Ursache und die Lösung deines Problems erklärt:
https://www.proggen.org/doku.php?id=c:faq:input-puffer
Es hat damit zu tun, dass der Computer Zeichen die Eingegeben wurden nicht löscht und damit mit der nächsten Eingabe wieder übernommen werden.