thekiller
Viceinator
Hallo,
ich lese Daten aus einer Textdatei aus. Ich lese zuerst eine float Zahl aus der Datei in einen string ein und diesen möchte ich dann mit folgender Zeile in einen "RICHTIGEN" float wert umwandeln:
Das problem ist, dass bei Kommawerten wie z.B. 100.0 das Programm abstürzt aber bei Ganzzahlen nicht.
Speicher für P1x ist reserviert und funktioniert...Das habe ich ausgiebig getestet...
Beispiel 1(funktioniert):
Beispiel 2(funktioniert nicht):
Als Fehlermeldung bekomme ich z.B.:
"100.0" ist kein gültiger Gleitkommawert!
Was ja ansich ja eigentlich nicht sein kann...
ich lese Daten aus einer Textdatei aus. Ich lese zuerst eine float Zahl aus der Datei in einen string ein und diesen möchte ich dann mit folgender Zeile in einen "RICHTIGEN" float wert umwandeln:
Code:
*(P1x + Polygon) = StrToFloat(buffer.c_str()) / 100.0;
Das problem ist, dass bei Kommawerten wie z.B. 100.0 das Programm abstürzt aber bei Ganzzahlen nicht.
Speicher für P1x ist reserviert und funktioniert...Das habe ich ausgiebig getestet...
Code:
float *P1x;
Code:
if((P1x = (float*)malloc(Number_Of_Polys)) == NULL) {
Application->MessageBoxA("Zu wenig Arbeitsspeicher verfügbar...", "Warnung!", MB_OK);
return FALSE;
}
Beispiel 1(funktioniert):
Code:
string buffer = "100";
int Polygon = 0;
*(P1x + Polygon) = StrToFloat(buffer.c_str()) / 100.0;
// Das auf der Speicherstelle steht dann 100
Beispiel 2(funktioniert nicht):
Code:
string buffer = "100.0";
int Polygon = 0;
*(P1x + Polygon) = StrToFloat(buffer.c_str()) / 100.0;
// Programm stürzt ab
Als Fehlermeldung bekomme ich z.B.:
"100.0" ist kein gültiger Gleitkommawert!
Was ja ansich ja eigentlich nicht sein kann...
Zuletzt bearbeitet: