PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C: double zu string



itsme
11-01-2004, 10:46
Gibt es einen einfachen Weg einen double Wert in einen String umzuwandeln? Bis jetzt habe ich etwas wie

void updateView(double number)
{
char value[100];
sprintf(value,"%g",number);
}

benutzt. Sieht nicht wirklich schön aus... :)

peschmae
11-01-2004, 11:24
afaik nicht.

Jede Menge Funktionen für String->Zahl (atoi/atol) aber nix für umgekehrt, ausser eben sprintf().

MfG Peschmä

wraith
11-01-2004, 11:24
In C89/90 hast du nur die Möglichkeit mit sprintf.
In C99 ist snprintf vorzuziehen,weil du da noch die Größe des Buffers übergibst.
Dann gibt es noch die Möglichkeit mit non-Standard Funktionen,die in der Handhabung auch nicht schöner sind.

peschmae
11-01-2004, 13:26
Man könnte sich sonst auch ne Wrapper-Funktion schreiben.

Aber inline-Funktionen gibts ja bei C nicht. :p

MfG Peschmä

wraith
11-01-2004, 13:28
Original geschrieben von peschmae

Aber inline-Funktionen gibts ja bei C nicht. :p

Doch seit C99 dabei :)

peschmae
11-01-2004, 16:40
oh, nicht schlecht. Die Sprache wird also weiter verbessert.

Oder lag das seit jeher in der Kompetenz des Compilers?
Wo kriegt man das mit?

MfG Peschmä

wraith
11-01-2004, 22:40
Original geschrieben von peschmae
oh, nicht schlecht. Die Sprache wird also weiter verbessert.

Sicherlich,etwa alle 10 Jahre ein neuer Standard.


Oder lag das seit jeher in der Kompetenz des Compilers?

__inline oder _inline oder ähnliches gab' es meist schon länger bei vielen Compilern als Extension.Der Standard macht daraus nur,eh,Standard ;).


Wo kriegt man das mit?

comp.std.c oder
http://anubis.dkuug.dk/jtc1/sc22/wg14/www/docs/n869/

peschmae
12-01-2004, 12:15
immerhin alle 10 Jahre, ich dachte die Sprache wäre ganz tot.

Danke für die URL :D

MfG Peschmä

panzi
13-01-2004, 01:39
Für den Zweck hab ich mal ein paar Funktionen geschrieben. Bin mir sicher man kann sie noch optimieren (jeder Hinweiß erwünscht), aber sie funken.
Hab sie (plus ein paar weitere) in nen Header notansi.h gepackt, da sie Funktionen sind, welche auf der Hand liegen aber nicht ANSI sind. ;)

Schaut's es euch an.