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
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.