minicrispie: c-Programm & getchar()

Beitrag lesen

Hallo,

Ich hab jetzt den fflush eingefügt, allerdings hat er keine Änderung bewirkt.

sollte aber...

Könntest du das evtl. nochmals genauer erläutern?

Hier mal ein (getestetes, funktionierendes) Beispiel:

  
#include <stdio.h>  
  
int main()  
{  
	//Hier legst du alle Variablen an. Diese Deklaration darfst du bei C-Programmen nur einmal machen.  
    char readChar;  
    int  pos      =  0;  
    int  counter  =  0;  
  
    //Hier folgt eine definierte Schleife. Diese Schleife läuft, sofern du "counter" nicht in ihr verwendest nur 9 mal durch.  
    for( counter=0; counter<9; counter++ )  
    {  
        printf( "Insert Position: " );  
  
        //Hier liest du ein Zeichen ein und speicherst es in readChar. Castest du die Variable nach Integer, so steht hier der ASCII-Wert  
        //Gleichzeitig gibt getchar den eingegebenen Wert aus.  
        readChar = getchar();  
  
        //Nun die Ausgabe der Variable. Hier siehst du außerdem, das "readChar" automatisch  
        //nach Integer gecastet wird. Somit ergibt z.b. "2" - 48  -->  50-48=2.  
        printf( " [%i]\n", ( readChar - 48 ) );  
  
        //Zur Sicherheit immer noch den Tastaturpuffer leeren. Nun können wirklich keine Zeichen mehr eingelesen werden  
        //die sich noch im Puffer verstecken ;)  
        fflush( stdin );  
    }  
  
    //Die Ausgabe dient dazu, das der User weis: "Hier ist Stopp" ... (bzw. ich, weil ich nicht nachzähle, wie oft ich eingebe ;)  )  
    printf( "\n\nEND" );  
  
    //Damit das Programm nicht sofort beendet, musst du es anhalten. Dafür gibt es drei Methoden:  
    //system("pause");  <-- Schreibt den Text "Drücken Sie eine Taste zum Beenden" und wartet auf Tastendruck( finde ich wegen der eigenständigen Ausgabe nicht schön  
    //sleep(5000);      <-- Hier wird bis zum beenden 5 Sekunden gewartet. Dann bricht es unwilkürlich ab.  
    getch(); //         <-- Finde ich als beste Methode, da hier keine Ausgabe erfolgt und der Benutzer entscheiden kann, wann er beendet  
  
    //Rückgabewert an das Betriebssystem  
    return 0;  
}  
  

Ich hoffe, die Inline-Doku reicht ;)

MfG. Christoph Ludwig

--
Wo die Sprache aufhört, fängt die Musik an...
Selfcode:  sh:) fo:) ch:° rl:( br:^ n4:} ie:{ mo:} va:) js:| de:] zu:) fl:( ss:| ls:~
Go to this