[c++]Umwandlung mit "atof"

DeChecka

Erfahrenes Mitglied
Hi!
Wollte mal fragen, wieso 3.31889e-039 herauskommt, wenn ich ein char mit dem Wert 1 per atof() in float umwandeln will...

Kann mir da jemand helfen?

MfG
DeChecka
 
ich weis jetzt nicht wie du das machst, bzw was du machst aber normalerweise müsste es gehen..

hab mal kurz was probiert, und bei mir geht es ohne Probleme.

Code:
#include <iostream>
using namespace std;
void main()
{
char c;
float f;
c='1';
f=atof(&c);
cout << f << endl;
}

könnte sein dass du etwas falsches an dei Funktion atof übergibst, da ich aber nicht weis was du machen willst kann ich dir leider nicht helfen
 
Hmm, muss ich da den Adressoperator angeben?
Weil ich hab das gleich für ein char-Array versucht und ohne den Adressoperator...

Also:
Code:
char puffer[10];
float f;
char[0] = '1';
char[1] = '2';

f = atof(puffer);

So soll das zum Beispiel gehen;)

Hab das so in etwa schonmal wo gesehen...

MfG
DeChecka
 
Das geht in beiden Fällen wahrscheinlich deswegen in die Hose, weil atof einen Null-terminierten String erwartet. Das ist bei beiden Fällen nicht der Fall. Der wandelt alles bis zur nächsten Null irgendwo im Speicher in die Zahl um, und das kann sonstwas sein.
 
Hmm, ok, sorry, in meinem Original sieht das komplexer aus und da wird der String auch nullterminiert... Hab das nur zur Vereinfachung genommen...

An was kann das bloß liegen?

MfG
DeChecka
 
zeig halt mal wie du es gemacht hast, vieleicht kann man da eher was daraus schließen. normalerweise müsste es mit einem array auch gehen - ich kann jetzt nicht sagen wie die atof funktion auf Buchstaben reagiert, jedoch könnte das ein Grund für den Fehler sein

MFG
 
Ja, auf Buchstaben reagiert sie glaube ich mit Fehler...
Allerdings lag es nicht daran...
Ich hab den Fehler gefunden, war ein Denkfehler von mir und hatte nicht direkt mit der Verwendung der atof()-Funktion zu tun. Sorry;)

MfG
DeChecka
 
Zurück