# [c++]Umwandlung mit "atof"



## DeChecka (31. Mai 2005)

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


----------



## Biergamasda (31. Mai 2005)

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.


```
#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


----------



## DeChecka (31. Mai 2005)

Hmm, muss ich da den Adressoperator angeben?
Weil ich hab das gleich für ein char-Array versucht und ohne den Adressoperator...

Also:

```
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


----------



## Endurion (31. Mai 2005)

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.


----------



## DeChecka (31. Mai 2005)

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


----------



## Biergamasda (31. Mai 2005)

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


----------



## DeChecka (31. Mai 2005)

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


----------

