C String Problem

Dir ist schon das "break;" aufgefallen, oder?! :)

(Wäre natürlich schon besser (bzw. schöner) das nach der Schleife zu machen)
 
moin


Ja, hab das break übersehen, aber wenn schon so, dann würde ich if und else tauschen, und dann das else weglassen, so:
Code:
while(( ch = fgetc (stream) ) != EOF)
{
    if (ch == '.')
    {
        zahl[zahler]=0;          //Wichtig!
        zahl2 = atoi(zahl);
        break;
    }

    zahl[zahler++]=ch;
}
aber das ist ne Frage des Geschmacks.

Zu fget:
Die MSDN kennt die Funktion/Methode auch nicht...


mfg
umbrasaxum
 
Also ich wuerd das so machen:
Code:
int c,i;
int zahl=0;
char dummy[100];
// Ohne String
while ((c=getc(file))!=EOF && c!='.') {
    zahl=zahl*10+c-'0';
}
// Mit String
i=0;
while ((c=getc(file))!=EOF && c!='.') {
   dummy[i++]=c;
}
dummy[i]='\0';
zahl=atoi(dummy);
 
Und vielleicht wäre es auch keine schlechte Idee das Zeichen vorher mit isdigit() zu prüfen ob es überhaupt eine Ziffer ist und sonst abzubrechen.
 
Zurück