char / schleife

Tutorials.at
Verfügbare Informationen zu "char / schleife"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Michael - exbs - DrPhil_Guth
  • Forum: Tutorials.at
  • Forenbeschreibung: Programmierforum
  • aus dem Unterforum: C / C++
  • Antworten: 8
  • Forum gestartet am: Mittwoch 19.04.2006
  • Sprache: deutsch
  • Link zum Originaltopic: char / schleife
  • Letzte Antwort: vor 17 Jahren, 5 Monaten, 7 Tagen, 16 Stunden, 25 Minuten
  • Alle Beiträge und Antworten zu "char / schleife"

    Re: char / schleife

    Michael - 11.11.2006, 10:14

    char / schleife
    hallo,

    kann mir jemand sagen wieso meine schleife trotz eingabe eines f nur einmal durchlaufen wird? habe das programm von mehreren compilern compilieren lassen und bekomme einmal die meldung, dass es bei der schleifenbedingung nicht möglich ist einen pointer mit einen int-wert zu vergleichen - kann mir das jemand erkären?

    char c, d = 'f';

    while(d == 'f') {
    printf("Einlesen eines Buchstaben\n");

    c = getchar();
    putchar(c);


    printf("Fortfahren (f) Abbrechen (a)");
    d = getchar();
    }



    Re: char / schleife

    exbs - 11.11.2006, 12:40


    Code: #include <stdio.h>

    int main()
    {
        char c, d = 'f';

        while(d == 'f')
        {   
                 printf("Einlesen eines Buchstaben\n");
                 setvbuf(stdin,NULL,_IONBF,0);
                 setvbuf(stdin,NULL,_IOFBF,BUFSIZ);
                 c = getchar();
                 putchar(c);
                 printf("\nFortfahren (f) Abbrechen (a)");
                 setvbuf(stdin,NULL,_IONBF,0);
                 setvbuf(stdin,NULL,_IOFBF,BUFSIZ);
                 d = getchar();
        }
    }

    Du musst vor jedem mal "getchar();" ... den Puffer leeren, sonnst nimmt er dieses zeichen auch als eingabe. machen kannst du das indem du vor getchar(); einfach diese zeile einfügst!
    Code: setvbuf(stdin,NULL,_IONBF,0);
    setvbuf(stdin,NULL,_IOFBF,BUFSIZ);
    dies löscht den eingabepuffer.

    greetzz exbs



    Re: char / schleife

    DrPhil_Guth - 13.11.2006, 14:16


    tuts ein einfaches

    fflush(stdin);

    nicht auch? oder hab ich da was verwechselt?



    Re: char / schleife

    exbs - 13.11.2006, 17:07


    ja das tut es ... allerdings hab ich gelesen, dass es unter umständen auch zu einem vollkommen unvorhersehbaren verhalten führen KANN. Und da is diese lösung besser (eindeutiger) ... !! Bin mir auch net sicher ob das portabel ist :?: ?!

    greetzz exbs



    Re: char / schleife

    DrPhil_Guth - 14.11.2006, 17:16


    Unverhergesehenes verhalten? Was wo wie warum?
    Wo hast du das gelesen, das würd mich auch interessieren.

    Portabel muss es sein, gehört schließlich zum ANSI standart.



    Re: char / schleife

    exbs - 14.11.2006, 20:20


    Zitat: 7.19.5.2 The fflush function
    Synopsis

    #include <stdio.h>
    int fflush(FILE *stream);
    Description

    If stream points to an output stream or an update stream in which the most recent
    operation was not input, the fflush function causes any unwritten data for that stream
    to be delivered to the host environment to be written to the file; otherwise, the behavior is
    undefined.

    If stream is a null pointer, the fflush function performs this flushing action on all
    streams for which the behavior is defined above.
    Returns

    The fflush function sets the error indicator for the stream and returns EOF if a write
    error occurs, otherwise it returns zero.

    greetzz exbs



    Re: char / schleife

    DrPhil_Guth - 17.11.2006, 00:57


    also eigentlich is die für ganz was anderes... mich wundert nur warum ich das so oft gesehen habe, dass es zum leeren von stdin verwendet wird...



    Re: char / schleife

    exbs - 17.11.2006, 14:23


    Ich habe es früher auch nur verwendet, weil es mir von vielen so gesagt wurde. Erst als ich dann in einem aderen Forum darauf aufmerksam gemacht wurde, habsch ne andere genommen. Ich meine es futtz ja, so isses net, möglicherweise nehmen es deshalb so viele.

    greetzz



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Tutorials.at

    registry - gepostet von Moritz am Sonntag 18.11.2007
    Zeugnisnotenrechner - brauche Hilfe beim Programmieren. - gepostet von Mobin am Dienstag 09.01.2007
    Robot Carol - gepostet von Dragorad am Mittwoch 25.10.2006
    compiler gesucht!!! - gepostet von the gangster am Donnerstag 07.06.2007
    Daten löschen und .exe starten - gepostet von Pole am Montag 13.08.2007
    Programm (C) was Sekunden in Tage Stunden Minuten umrechnet! - gepostet von Kimi am Donnerstag 01.11.2007
    Blender-Problem - gepostet von toby-man am Samstag 06.10.2007
    Bilder - gepostet von BASIC am Mittwoch 31.05.2006
    übersicht - gepostet von absoluter noob tith am Donnerstag 13.07.2006



    Ähnliche Beiträge wie "char / schleife"

    Char Darstellung via Mausklick - Bloodrush (Sonntag 22.01.2006)
    Char-Übersicht (Unfreies Leben) - Talok (Donnerstag 04.10.2007)
    Stephans neuer Char - theadomir feryndû (Montag 25.06.2007)
    Svens Char - TraumEngel (Freitag 09.03.2007)
    Mein Char - sushikampf (Freitag 23.06.2006)
    char details - uNinho (Mittwoch 30.08.2006)
    Lunar auf anderen char - miwak0 (Donnerstag 23.08.2007)
    Hacker Angriff auf meinen Char. - Baron Kart (Sonntag 11.03.2007)
    Mein Char - Raine (Sonntag 14.01.2007)
    Char Übersicht : Die Heldengilde - Ulquiorra (Sonntag 30.12.2007)