minicrispie: c-Programm & getchar()

Beitrag lesen

Hallo,

ich habe hier folgendes c-Programmfragment:

»»   while(counter<9)  

>     {  
>        [...]  
>     }

Hat jemand ne Idee woran das liegen könnte?

Du Musst noch den Tastaturpuffer leeren. Dies machst du mit fflush( stdin );
Dann kannst du eine Variable nicht 9 mal deklarieren:

»»     while(counter<9)  

>     {  
>         int pos=-1;

▲▲▲
Zudem ist dieser Schritt sinnlos, da du ihn eh wieder überschreibst, und ~~~c dazwischen diese Variable nicht verwendest:

pos = ((int)readChar) - 48;

  
Bei einer Fest definierten Anzahl an Durchläufen macht sich eine For-Schleife am besten:  
  
~~~c
for( counter=0; counter<9; counter++ )  
{  
    //...  
}

Zudem fehlt noch das Error-Handling. Was, wenn der User keine Zahl eingibt? Dann kann das Programm anstürzen oder zumindest Fehlerhaft arbeiten.
Prüfe deswegen, ob der eingegebene Wert eine Zahl ist.

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