Fehler bei char-eingabe in do-while-Schleife

Schnelle objektorientierte, kompilierende Programmiersprache.
Antworten
NRFTW
Beiträge: 1
Registriert: Mi Dez 17, 2014 11:17 am

Fehler bei char-eingabe in do-while-Schleife

Beitrag von NRFTW » Mi Dez 17, 2014 11:37 am

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
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

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

Beitrag von cloidnerux » Mi Dez 17, 2014 11:45 am

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.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Antworten