printf / scanf Problem



  • Moin,

    bei meinen ersten Schritten in C habe ich ein kleines Problem.

    int main()
    {
    
        int var;
        char var2;
    
        printf("Zahl eingeben: ");
        scanf("%d",&var);
    
        printf("%d  Sag was: ",var);
        scanf("%c",&var2);
    
        printf("%c",var2);
    
        getch();
    
    }
    

    Beim zweiten printf lässt er mich allerdings gar nicht schreiben. Er benutzt stattdessen für var2 auch var.
    Was mache ich falsch ?



  • Mach aus

    scanf("%c",&var2)
    

    einfach

    var2 = getchar()
    


  • Da hängt noch das '\n' im Eingabebuffer. Wie man das nicht löscht und wie man das löscht findest du in der FAQ: http://www.c-plusplus.net/forum/viewtopic.php?t=39349



  • Danke erstmal für eure Antworten.

    Das ist für jemanden der erst die Erste Seite eines C-Kurses durch hat ein bisschen unverständlich, aber ich werde mich mal durchwühlen 😉

    Lg
    Chris



  • Da hängt noch das '\n' im Eingabebuffer.

    Hehe. Das war's.
    Vorigen Post von mir ignorieren.
    (Wenn ich über scanf() rede, ist's eh meistens falsch)

    Aber so könnt's auch gehen:

    printf("Zahl eingeben: ");
    scanf("%d\n",&var);
    //       ^^
    
    printf("%d  Sag was: ",var);
    scanf("%c\n",&var2);
    //       ^^   
    
    printf("%c",var2);
    

    Besser klingt aber, was c.rackwitz im verlinkten Thread gesagt hat.
    Das schreibst du einfach nach jeden scanf()-Aufruf und: Voila.



  • flamer schrieb:

    Vorigen Post von mir ignorieren.

    Besser nicht. Um ein einzelnes Zeichen einzulesen ist getchar wesentlich eleganter als scanf. Auch wenn das hier nicht das eigentliche Problem ist.


Log in to reply