www.mikrocontroller.net

Forum: PC-Programmierung strtof-Funktion wie benutzbar?


Autor: Maxx (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Michael Niegl (bigmike47)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Bartli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
z.B. so.
float blah;
char meintollerstring[] = "3.14";
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.

Autor: Maxx (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, danke. Scheint jetzt zu funktionieren :-)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.