Ich habe ein Programm, das Eingabe von einer einzelnen Zeile liest (String offensichtlich) und organisiert es in Arrays.Einfache C: atof geben falschen Wert
Das Problem, das ich habe, ist, dass an einem Punkt das Programm zwei verschiedene Werte liest und die erste zweimal zurückgibt. Anfangs dachte ich, dass das Programm den gleichen Wert zweimal lesen würde, aber als ich es getestet habe, stellte sich heraus, dass es das richtige bekommen hat, aber das falsche eingegeben hat.
zum Beispiel
Eingang: 2 0,90 0,75 0,7 0,65
leider schnippeln es
(while(fgets (string[test], sizeof(string[test]),ifp))
pch = strtok_r(NULL, " ", &prog);
tem3 = atoi(pch);
while (loop<tem3)
{
pch=strtok_r(NULL," ",&prog);
venseatfloat[test][loop][DISCOUNT][OCCUPIED]=(float)atof(pch);
printf("%f is discount\t",venseatfloat[test][loop][DISCOUNT][OCCUPIED]);
pch=strtok_r(NULL, " ", &prog);
strcpy(temp, pch);
venseatfloat[test][loop][REGULAR][OCCUPIED]=(float)atof(pch);
printf("%s is the string but %.3f is regular\n", temp ,venseatfloat[test][loop][DISCOUNT][OCCUPIED]);
loop++;
}
Ausgang:
>0.900000 is discount 0.75 is the string but 0.900 is regular
>0.700000 is discount 0.65 is the string but 0.700 is regular
Was ist los ?
lol –
Chani
Ughhhh wow. Ich bin ein Idiot. Es tut mir leid, dass ich aus deiner Zeit stiehl. Ich muss jetzt meinen Kopf an eine Wand hämmern. –
@Doc, Wenn das wirklich die Lösung ist, dann müssen Sie die Antwort akzeptieren. –