Programm bleibt in Schleife hängen



  • Hallo

    Wie schon erwähnt bleibt mein Programm in der Schleife hängen aber ich verstehe nicht ganz warum.

    Geplant war das int zählen jedes Zeichen welches ich eingebe um eins erhöht. Aber wenn ich return i eingebe, gibt er immer 1 zurück.

    buchstaben= getchar();
      insgesamt= zählen (buchstaben);
    
    int zählen(char buchstaben)
    {
        int i=0;
    
        while (buchstaben != '\n')
        {
            if (buchstaben != 32)
            {
                i++;
            }
        }
    }
    

    Danke

    MfG



  • du veränderst die variablen buchstaben ja auch nie..



  • Das ist ein Witz, oder?

    weil die schleife endlos rennt?

    Du hast einen inpoutchar.
    solange dieser ungleich \n rennt er durch die schleife. die Variable buchstabe wird nicht verändert, wie soll also jemals die abbruchbedingung erreicht werden?



  • @vlad_tepesch
    entspann dich mal

    Ich habe es mir schon fast gedacht.

    Vorher hatte ich das buchstaben=getchar() in der while Scheife. Deshalb hat es auch funktioniert.

    Da ich aber buchstaben=getchar() für mehrere Unterprogramme brauche habe ich das rausgeschrieben.

    Wie könnte ich das Programm umschreiben das ich mehrere Zeichen hintereinander
    eingebe und dabei in mehrere Unterprogramme springe wo die Unterprogramme die einzelnen Zeichen überprüfen?



  • Was willst du amchen? einen string soll jemand eingeben oder?
    Dann willst du nacheinander jedes zeichen des strings prüfen? Auf was prüfen? Was hast du vor?


Anmelden zum Antworten