/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
double til char* eller string
Fra : IB


Dato : 17-04-01 13:23

Hej
Lige et lille newbie spg:
Findes der en metode der ligesom, itoa(), konverterer fra int til en char*,
kan konvertere fra double til char* eller string?? I så fald, hvilken
headerfil skal så includes??

Mvh IB



 
 
Mogens Hansen (17-04-2001)
Kommentar
Fra : Mogens Hansen


Dato : 17-04-01 14:00


"IB" <IB@kefas.dk> wrote in message news:9bhcl0$2jl$1@news.cybercity.dk...
> Hej
> Lige et lille newbie spg:
> Findes der en metode der ligesom, itoa(), konverterer fra int til en
char*,
> kan konvertere fra double til char* eller string?? I så fald, hvilken
> headerfil skal så includes??

I C kan du bruge "sprintf" eller hellere "snprintf":
#include <stdio.h>

int main(int /*argc*/, char* /*argv*/[])
{
double d =1.234;
char buffer[128];

snprintf(buffer, sizeof(buffer), "%f", d);

return 0;
}

I C++ kan du bruge "ostrstream" eller "ostringstream":
#include <sstream>
#include <string>

int main(int /*argc*/, char* /*argv*/[])
{
using namespace std;
double d =1.234;

ostringstream os;
os << d;
string s = os.str();

return 0;
}

så slipper du for at kæmpe med at specificere typen (double) rigtigt i
format-strengen og for at allokere tilstrækkeligt meget hukommelse.



Venlig hilsen

Mogens Hansen



Igor V. Rafienko (17-04-2001)
Kommentar
Fra : Igor V. Rafienko


Dato : 17-04-01 14:21

* IB@kefas.dk

> Findes der en metode der ligesom, itoa(), konverterer fra int til en
> char*, kan konvertere fra double til char* eller string?? I så fald,
> hvilken headerfil skal så includes??


I utgangspunktet er svaret "nei". Det finnes ingen portabel metode som
heter ftoa/dtoa.

Det er 2 typer "løsninger" som finnes:

* C-style, sprintf
* C++-style, stringstreams

Ta en titt på dinkum.com (fx.) for en omfattende beskrivelse.





ivr
--
Ë ÓÏÖÁÌÅÎÉÀ, "ÉÎÔÕÉÔÉ×ÎÏ ÐÏÎÑÔÎÙÊ ÉÎÔÅÒÆÅÊÓ" - ÍÁÒËÅÔÏÉÄÎÙÊ ÍÉÆ.
éÎÔÕÉÔÉ×ÎÏ ÐÏÎÑÔÎÙÊ ÉÎÔÅÒÆÅÊÓ ÅÓÔØ ÔÏÌØËÏ Õ ÓÉÓØËÉ.
      -- V. Lugovsky on <news:fido7.ru.informatica>

Richard Flamsholt (18-04-2001)
Kommentar
Fra : Richard Flamsholt


Dato : 18-04-01 21:50

igorr@ifi.uio.no (Igor V. Rafienko) skrev:
>I utgangspunktet er svaret "nei". Det finnes ingen portabel metode som
>heter ftoa/dtoa.
>
>* C-style, sprintf

Hvorfor mener du at fx sprintf-metoden ikke er portabel?

--
Richard Flamsholt
richard@flamsholt.dk - www.richard.flamsholt.dk

Kent Friis (18-04-2001)
Kommentar
Fra : Kent Friis


Dato : 18-04-01 23:00

dDen Wed, 18 Apr 2001 22:49:40 +0200 skrev Richard Flamsholt:
>igorr@ifi.uio.no (Igor V. Rafienko) skrev:
>>I utgangspunktet er svaret "nei". Det finnes ingen portabel metode som
>>heter ftoa/dtoa.
>>
>>* C-style, sprintf
>
>Hvorfor mener du at fx sprintf-metoden ikke er portabel?

Som jeg læser det, skriver han at der ikke findes nogen portabel dtoa,
så man er nødt til at bruge sprintf i stedet for, hvis man vil skrive
portabel kode.

Mvh
Kent
--
http://www.celebrityshine.com/~kfr - sidste billede: planets.png

Richard Flamsholt (19-04-2001)
Kommentar
Fra : Richard Flamsholt


Dato : 19-04-01 00:11

leeloo@mailandnews.com (Kent Friis) skrev:
>Som jeg læser det, skriver han at der ikke findes nogen portabel dtoa,
>så man er nødt til at bruge sprintf i stedet for, hvis man vil skrive
>portabel kode.

Jeg tror sørme du har ret. Jeg misforstod Igor. Sorry.

Jeg tror jeg faldt over, at Igor satte "løsninger" i anførselstegn, som
for at antyde at de ikke var ordentlige, portable løsninger.

--
Richard Flamsholt
richard@flamsholt.dk - www.richard.flamsholt.dk

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408847
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste