[edit]: vergesst dieses Post, skippt weiter zum nächsten...
[edit2]: vergesst es doch nicht ganz, denn der source erklärt so
ungefähr wie atoi anscheinend funzt. Sollte das sandy nicht
interessieren, dann ließ nach dem Sourcecode weiter...
Code:
int input()
{
char char_Eingabe[];
int int_Eingabe[];
int index, zahl;
for(index=0; index<=10; ++index)
{
char_Eingabe[index]=getche();
if(char_Eingabe[index]>='0' && char_Eingabe[index]<='9')
{
int_Eingabe[index]=atoi(char_Eingabe[index]);
}//end if
else if(char_Eingabe[index]=13) //13=Return Taste
break;
else
{
error_code=1;
break;
}//end else
}//end for()
if(error_code!=1)
{
zahl=input2zahl(int_eingabe[],strlen(int_eingabe[])-3);
}
else /*Hier muss man sich jetzt noch was sinnvolles überlegen, sodass
dann das gesamte Programm entweder neustartet od. überhaupt beendet wird.
Das einfachste wäre vielleicht mit exit, wodurch das Programm einfach
abgebrochen wird...
*Correct me if if i'm wrong* */
return zahl;
}
int input2zahl(string[],length)
//wenns mit string[] ned funzt, probiers mal mit einem Pointer
{
int index;
int zahl=0;
int exp=length;
for(index=0;index<=length;++index,--exp)
{
number=string[index]
zahl= (int)(zahl + number*(pow(10.0,(double)exp));//<--hier war ein Fehler
//fuer pow() brauchst du math.h, pow(double x, double y)=> x^y
}
return zahl;
}
@sandy:
Also deine Abfrage schließt jetzt aus dass die Float bzw double Zahlen
falsch eingegeben wurden, während meine nicht mit float bzw. double
Zahlen umgehen kann sondern nur mit int werten. Meine Variante schließt -so glaub ichs zumindestens- schließt die eingabe von
Zahlen, die verschieden von 0-9 sind mit Sicherheit aus und bricht ab.
PredeX