Forum: PC-Programmierung strtof-Funktion wie benutzbar?


von Maxx (Gast)


Lesenswert?

Hallo,

wie kann ich diese Funktion benutzen:

float strtof( const char *nptr, char **endptr);

was muss ich für "const char *nptr" und "char **endptr" übergeben? Kann 
mir jemand einen kleinen Beispiel geben, wie ich mit der Funktionen 
einen String in float konvertieren kann?

Noch eine Frage:
was hat "const char *nptr" zu bedeuten? ich meine wieso muss ich einen 
konstanten Char-Zeiger übergeben?

wenn ich sowas mache:
char c = 0x25;
const char *nptr = &c;
bekomme ich Fehlermeldung "illegale Konvertierung von "char" zu "const 
char *"..
ich verstehe es nicht richtig, bin für jede Erklärung sehr dankbar

Thx

von Michael N. (bigmike47)


Lesenswert?

const char *nptr ist ein pointer auf ein konstantes char objekt, daher 
ist das in deinem fall ein fehler, da dein c ja nicht const ist.
das const in der deklaration von strtof() besagt nur, dass dein 
uebergabeparameter, also in dem fall dein char* als konstante uebergeben 
wird, sprich jeder versuch *nptr innerhalb von strtof() zu aendern 
resultiert in einem fehler zur compile-zeit. deshalb muss aber *nptr 
ausserhalb von strtof() nicht const sein.

von Bartli (Gast)


Lesenswert?

z.B. so.
1
float blah;
2
char meintollerstring[] = "3.14";
3
blah = strtof(meintollerstring, NULL);

"If endptr is not NULL, a pointer to the character after the last 
character used in the conversion is stored in the location referenced by 
endptr."

endptr ist ein Ausgabeparameter, wenn dich der nicht interessiert, 
übergib einfach einen Nullpointer.

von Maxx (Gast)


Lesenswert?

ok, danke. Scheint jetzt zu funktionieren :-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.