007
15.06.2005, 23:26 Uhr
CDW
|
fflush(stdin) ist leider nicht definiert , getchar liefert außerdem einen int *zunge rausstreck* , ansonsten finde ich das auch bei getchar unschön da es nicht wirklich zeichen für zeichen einliest. Hier ist eine Lösung(von vielen möglichen):
C++: |
#include <stdio.h> int main( void ) { int zeichen; int zahl;
printf("Gebsen sie eine Zahl ein\n\n"); zahl=0; zeichen=getchar();
while ((zeichen>='0')&&(zeichen<='9')) { zahl=zahl*10; zahl=zahl+(zeichen-48); zeichen=getchar(); }
printf("Sie haben %d eingegeben",zahl);
return 0; }
|
mit der conio.h die leider windowsbezogen ist (man verzeihe mir dass es nicht ANSI ist ):
C++: |
#include <stdio.h> #include <conio.h>
int main( void ) { int zeichen; int zahl;
printf("Gebsen sie eine Zahl ein\n\n"); zahl=0;
zeichen=getch(); putchar(zeichen);
while ((zeichen>='0')&&(zeichen<='9')) {
zahl=zahl*10; zahl=zahl+(zeichen-48); zeichen=getch(); putchar(zeichen); fflush(stdout); }
if (zeichen=='\n') printf("\n Sie haben %d eingegeben",zahl); else printf("\n Zeichen %c ungueltig",zeichen);
return 0; }
|
Edit: versteh ich das jetzt richtig dass Du nur ein Zeichen einlesen möchtest? Dann ist meine Lösung wohl falsch. -- EB FE Dieser Post wurde am 15.06.2005 um 23:48 Uhr von CDW editiert. |