|
| char til float Fra : Nyberg |
Dato : 13-08-02 19:59 |
|
hej
hvordan konverter man en char til float i C++ .
MVH
René
| |
rocekiller@impsoft.d~ (13-08-2002)
| Kommentar Fra : rocekiller@impsoft.d~ |
Dato : 13-08-02 20:11 |
|
In article <ajbkpb$g1g$06$1@news.t-online.com>, Nyberg wrote:
> hvordan konverter man en char til float i C++ .
Hmm, en char vil da ikke kunne blive til andet end heltal mellem 0 og 9,
og da aldrig en float.
--
Greetings
Bjarke Freund-Hansen
| |
Ivan Johansen (13-08-2002)
| Kommentar Fra : Ivan Johansen |
Dato : 13-08-02 20:20 |
|
rocekiller@impsoft.dk wrote:
> In article <ajbkpb$g1g$06$1@news.t-online.com>, Nyberg wrote:
>
>>hvordan konverter man en char til float i C++ .
>>
>
> Hmm, en char vil da ikke kunne blive til andet end heltal mellem 0 og 9,
> og da aldrig en float.
Størrelsen på en char er afhængig af implementationen. På de fleste
implmentationer kan en char indeholde værdier mellem -128 og 127. En
char kan sagtens konverteres til en float. Det er dog ikke altid at en
float kan konverteres til en char uden tab.
Ivan Johansen
| |
Bjarke Dahl Ebert (13-08-2002)
| Kommentar Fra : Bjarke Dahl Ebert |
Dato : 13-08-02 23:27 |
|
"Ivan Johansen" <NG@Padowan.dk> wrote in message
> Det er dog ikke altid at en float kan konverteres til en char uden tab.
Nej, det ville da være synd at sige
Mvh. Bjarke
| |
Bertel Lund Hansen (13-08-2002)
| Kommentar Fra : Bertel Lund Hansen |
Dato : 13-08-02 21:26 |
|
rocekiller@impsoft.dk skrev:
>Hmm, en char vil da ikke kunne blive til andet end heltal mellem 0 og 9
Det er sgu svært at klemme alfabetet ned på 10 positioner.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Mikael Garde Nielsen (21-08-2002)
| Kommentar Fra : Mikael Garde Nielsen |
Dato : 21-08-02 14:38 |
|
hæhæ good one :)
- Mikael
"Bertel Lund Hansen" <nospam@lundhansen.dk> wrote in message
news:8qqilu087kcbvcm11malse3q36joqf4ue6@news.telia.dk...
> rocekiller@impsoft.dk skrev:
>
> >Hmm, en char vil da ikke kunne blive til andet end heltal mellem 0 og 9
>
> Det er sgu svært at klemme alfabetet ned på 10 positioner.
>
> --
> Bertel
> http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
| |
Ivan Johansen (13-08-2002)
| Kommentar Fra : Ivan Johansen |
Dato : 13-08-02 20:15 |
|
Nyberg wrote:
> hej
>
> hvordan konverter man en char til float i C++ .
Jeg er ikke sikker på hvad du mener. Konverteringen kan foretages implicit:
char c = 10;
float f = c;
Ivan Johansen
| |
Nyberg (13-08-2002)
| Kommentar Fra : Nyberg |
Dato : 13-08-02 21:26 |
|
Nej det kan man ikke
problemet er at jeg for en text Char* med tal 0.455 som jeg vi begene på
MVH
René Nyberg
Ivan Johansen <NG@Padowan.dk> skrev i en
nyhedsmeddelelse:3D595AA6.9090708@Padowan.dk...
> Nyberg wrote:
>
> > hej
> >
> > hvordan konverter man en char til float i C++ .
>
> Jeg er ikke sikker på hvad du mener. Konverteringen kan foretages
implicit:
> char c = 10;
> float f = c;
>
>
> Ivan Johansen
>
| |
Claus Rasmussen (13-08-2002)
| Kommentar Fra : Claus Rasmussen |
Dato : 13-08-02 21:43 |
|
Nyberg wrote:
> Nej det kan man ikke
> problemet er at jeg for en text Char* med tal 0.455 som jeg vi begene på
#include <stdlib.h>
float f = atof("0.455");
-Claus
| |
Leo Laursen (13-08-2002)
| Kommentar Fra : Leo Laursen |
Dato : 13-08-02 21:56 |
|
Nyberg <Nyberg@T-Online.de>:
>>> hvordan konverter man en char til float i C++ .
> Ivan Johansen <NG@Padowan.dk> skrev i en
>> Jeg er ikke sikker på hvad du mener. Konverteringen kan foretages
>> implicit: char c = 10; float f = c;
> Nej det kan man ikke problemet er at jeg for en text Char* med tal
> 0.455 som jeg vi begene på
Du kan kikke på på 2 (C) funktioner i <cstdlib>
atof(char* s) og strtod(char* s, char** endptr)
Leo
--
"If you ever want to get anywhere in politics, my boy, you're going to
have to get a toehold in the public eye."
| |
Ivan Johansen (14-08-2002)
| Kommentar Fra : Ivan Johansen |
Dato : 14-08-02 11:43 |
|
"Nyberg" <Nyberg@T-Online.de> wrote in message
news:ajbps0$m39$06$1@news.t-online.com...
> Nej det kan man ikke
> problemet er at jeg for en text Char* med tal 0.455 som jeg vi begene på
>
Se det er jo noget helt andet. Claus og Leo har givet eksempler på hvordan
det kan gøres med C funktioner. I C++ vil man dog ofte anvende en stream:
#include <sstream>
int main()
{
char *Str = "0.455";
std::stringstream Stream(Str);
float f;
Stream >> f;
return 0;
}
Ivan Johansen
| |
Leo Laursen (14-08-2002)
| Kommentar Fra : Leo Laursen |
Dato : 14-08-02 19:13 |
|
Ivan Johansen <NG@Padowan.dk>:
>> problemet er at jeg for en text Char* med tal 0.455 som jeg vi begene på
> I C++ vil man dog ofte anvende en stream:
> #include <sstream>
> int main()
> {
> char *Str = "0.455";
> std::stringstream Stream(Str);
> float f;
> Stream >> f;
> return 0;
> }
Ja det er jo flot. Problemet med at have lidt kendskab til C, før man
lærer C++, er at man straks tænker i C løsninger, og så holder op med at
lede efter bedre løsninger.
Kan man modsvarende skrive en talværdi til en streng med stringstream?
Leo
--
My brain is my second favorite organ.
-- Woody Allen
| |
Ivan Johansen (14-08-2002)
| Kommentar Fra : Ivan Johansen |
Dato : 14-08-02 19:48 |
|
Leo Laursen wrote:
> Ja det er jo flot. Problemet med at have lidt kendskab til C, før man
> lærer C++, er at man straks tænker i C løsninger, og så holder op med at
> lede efter bedre løsninger.
>
> Kan man modsvarende skrive en talværdi til en streng med stringstream?
Ja, sagtens:
#include <sstream>
#include <string>
int main()
{
std::stringstream Stream;
float f = 4.758;
Stream << f;
std::string Str = Stream.str();
return 0;
}
Ivan Johansen
| |
Bjarke Dahl Ebert (16-08-2002)
| Kommentar Fra : Bjarke Dahl Ebert |
Dato : 16-08-02 16:52 |
|
"Leo Laursen" <l.laursen@mail1.stofanet.dk> wrote in message
news:aje6jp$fba$1@sunsite.dk...
> Ivan Johansen <NG@Padowan.dk>:
> > I C++ vil man dog ofte anvende en stream:
>
> > #include <sstream>
>
> > int main()
> > {
> > char *Str = "0.455";
>
> > std::stringstream Stream(Str);
> > float f;
> > Stream >> f;
>
> > return 0;
> > }
>
> Ja det er jo flot. Problemet med at have lidt kendskab til C, før man
> lærer C++, er at man straks tænker i C løsninger, og så holder op med at
> lede efter bedre løsninger.
Tilsvarende er problemet med C++, at sproget kan nogle ting som er
tilstrækkeligt smarte til at få en tilstrækkeligt begavet programmør til at
tænke at sproget er tilstrækkeligt fedt, og så holde op med at lede efter
bedre løsninger.
Sådan her *bør* det kunne gøres:
Str = "0.455"
f = float(Str)
Og det kan det heldigvis også - bare ikke i C++ .
Alt udover de to linier er det rene fyld. Fyld hører til i flødeskumskager,
ikke i sourcekode.
Bjarke
| |
Igor V. Rafienko (16-08-2002)
| Kommentar Fra : Igor V. Rafienko |
Dato : 16-08-02 17:11 |
|
[ Bjarke Dahl Ebert ]
[ snip ]
> Sådan her *bør* det kunne gøres:
> Str = "0.455"
> f = float(Str)
> Og det kan det heldigvis også - bare ikke i C++ .
Slutt å lyve, er du snill.
[ snip ]
ivr
--
<peder> igorr: tcl ja... det er fra de dypeste avgrunnene i helvete det...
<peder> php er bare fra foajeen
-- pederst på irc
| |
Leo Laursen (16-08-2002)
| Kommentar Fra : Leo Laursen |
Dato : 16-08-02 18:48 |
|
Bjarke Dahl Ebert <bebert@worldonline.dk>:
>> Ja det er jo flot. Problemet med at have lidt kendskab til C, før man
>> lærer C++, er at man straks tænker i C løsninger, og så holder op med at
>> lede efter bedre løsninger.
> Tilsvarende er problemet med C++, at sproget kan nogle ting som er
> tilstrækkeligt smarte til at få en tilstrækkeligt begavet programmør til at
> tænke at sproget er tilstrækkeligt fedt, og så holde op med at lede efter
> bedre løsninger.
Ja, nu er jeg jo først ved at lære C++, og har ikke lagt mig fast på at
det er et elendigt sprog endnu.
Fra mit synspunkt er der et "pænt" C++, og en hoben dødkomplicerede kode
eksempler, der er umulige at få hoved eller hale i.
Jeg vil gerne lære den pæne stil, og så hen ad vejen bruge de mere
lowlevel ting når det er relevant.
> Sådan her *bør* det kunne gøres:
> Str = "0.455"
> f = float(Str)
> Og det kan det heldigvis også - bare ikke i C++ .
> Alt udover de to linier er det rene fyld. Fyld hører til i flødeskumskager,
> ikke i sourcekode.
Taler vi "rigtige" sprog ville jeg sige:
"0.455".to_f
Men nu ingen krig, vel
Leo
--
BOFH excuse #422:
Someone else stole your IP address, call the Internet detectives!
| |
Bjarke Dahl Ebert (16-08-2002)
| Kommentar Fra : Bjarke Dahl Ebert |
Dato : 16-08-02 22:24 |
|
"Leo Laursen" <l.laursen@mail1.stofanet.dk> wrote in message
news:ajjdsb$el7$1@sunsite.dk...
> Bjarke Dahl Ebert <bebert@worldonline.dk>:
> > Sådan her *bør* det kunne gøres:
> > Str = "0.455"
> > f = float(Str)
> Taler vi "rigtige" sprog ville jeg sige:
> "0.455".to_f
> Men nu ingen krig, vel
Nejnej . Jeg vil bare nøjes med at sige, at så kan jeg skrive:
float("0.455")
Det er et spørgsmål om, om det er en egenskab ved en streng at den kan parse
sig selv som en float, eller en egenskab ved float at den kan initialiseres
med en streng. Python har valgt det sidste.
Mvh. Bjarke
| |
Igor V. Rafienko (16-08-2002)
| Kommentar Fra : Igor V. Rafienko |
Dato : 16-08-02 23:02 |
|
[ Bjarke Dahl Ebert ]
[ snip ]
> Det er et spørgsmål om, om det er en egenskab ved en streng at den
> kan parse sig selv som en float, eller en egenskab ved float at den
> kan initialiseres med en streng. Python har valgt det sidste.
Da er det naturlig å spørre -- hva gjør man når tallet er skrevet
etter bestemte nasjonale konvensjoner og du ønsker _ikke_ å forandre
synes til _hele_ programmet ditt mhp. slike konvensjoner?
ivr
--
<peder> igorr: tcl ja... det er fra de dypeste avgrunnene i helvete det...
<peder> php er bare fra foajeen
-- pederst på irc
| |
Bjarke Dahl Ebert (16-08-2002)
| Kommentar Fra : Bjarke Dahl Ebert |
Dato : 16-08-02 23:50 |
|
FUT: dk.edb.programmering
"Igor V. Rafienko" <igorr@ifi.uio.no> wrote in message
news:xjvptwibgyf.fsf@haey.ifi.uio.no...
> [ Bjarke Dahl Ebert ]
> > Det er et spørgsmål om, om det er en egenskab ved en streng at den
> > kan parse sig selv som en float, eller en egenskab ved float at den
> > kan initialiseres med en streng. Python har valgt det sidste.
>
> Da er det naturlig å spørre -- hva gjør man når tallet er skrevet
> etter bestemte nasjonale konvensjoner og du ønsker _ikke_ å forandre
> synes til _hele_ programmet ditt mhp. slike konvensjoner?
Ja, jeg kan jo ikke ændre den indbyggede type 'float'. Hvis jeg
initialiserer en float med en streng, bruger den altid engelsk decimalkomma,
hvilket er det vi ønsker!
Hvis programmet skal kommunikere med almindelige dødelige brugere, kan det
da godt være at jeg vil læse en streng med dansk decimalkomma:
import locale
print locale.atof("0,445")
---> 0.445
Det benytter POSIX locale (C library), og virker derfor på alle de platforme
Python er kompileret til. På min danske Windows giver den faktisk uden
videre det ovenstående.
Hvis jeg nu har skrevet et helt program der mange steder benytter 'float'
typen til at foretage konverteringen, og jeg af en eller anden grund
beslutter at float(string) altid skal konvertere i henhold til brugerens
locale, så laver jeg da bare min egen float:
orig_float = float
class myfloat(orig_float):
def __new__(self, x):
if isinstance(x, str): return orig_float.__new__(self,
locale.atof(x))
else: return orig_float.__new__(self, x)
Og nu kan jeg gøre:
float = myfloat # Yep!!
Det vil virke inde i det modul hvor jeg foretager den assignment. Det vil
ikke ændre virkemåden af "float" i de moduler der ikke eksplicit beder om
det (heldigvis).
Et modul kan bede om denne "nye float" således:
from myhacks import float
Og mit eksisterende program vil køre som før, bortset fra at float(mystr) nu
vil konvertere i henhold til localen.
Eksempler, der viser hvordan det fungerer ("--->" betyder "evaluerer til"):
float
---> <type '__main__.myfloat'>
a = float(10)
---> 10.0
type(a)
---> <type '__main__.myfloat'>
b = float("0,455")
---> 0.445
b + 10
---> 10.445
type(b+10)
---> <type 'float'>
type(b)
---> <type '__main__.myfloat'>
orig_float
---> <type 'float'>
orig_float(10)
---> 10.0
Man skulle næsten tro at dit spørgsmål var bestilt, så jeg kunne blære mig
med den fine løsning
Mvh. Bjarke
| |
Igor V. Rafienko (17-08-2002)
| Kommentar Fra : Igor V. Rafienko |
Dato : 17-08-02 00:28 |
|
[ Bjarke Dahl Ebert ]
[ snip ]
> > Da er det naturlig å spørre -- hva gjør man når tallet er skrevet
> > etter bestemte nasjonale konvensjoner og du ønsker _ikke_ å
> > forandre synes til _hele_ programmet ditt mhp. slike konvensjoner?
>
> Ja, jeg kan jo ikke ændre den indbyggede type 'float'.
Spørsmålet angikk ikke den interne representasjonen av floats (jeg ser
ingen grunn til å bry seg om den).
> Hvis jeg initialiserer en float med en streng, bruger den altid
> engelsk decimalkomma, hvilket er det vi ønsker!
Ønsker _vi_ det? Kunne du forklare hvorfor _vi_ skulle ønske det?
(Personlig, ønsker jeg å bruke den konverteringsfunksjonen som passer
til det dataformatet som skal behandles).
> Hvis programmet skal kommunikere med almindelige dødelige brugere,
> kan det da godt være at jeg vil læse en streng med dansk
> decimalkomma:
>
> import locale
> print locale.atof("0,445")
> ---> 0.445
.... og dermed bruker man _to_ forskjellige teknikker for å gjøre
logisk sett _den samme_ operasjonen? (Forresten, lexical_cast (som
boost kaller den) burde komme i 2 utgaver, der den ene utgaven har et
ekstra "locale" argument).
[ snip kodeforslag ]
> Man skulle næsten tro at dit spørgsmål var bestilt, så jeg kunne
> blære mig med den fine løsning
Har du et akutt behov for å blære deg?
Jeg hadde to innvendinger mot
<URL:news:3d5d1fad$0$33552$edfadb0f@dspool01.news.tele.dk>, hvorav
bare den ene kom fra tydelig:
* Konverteringen fra string til float kan skrives likeså kort i C++
som i Python. Om man kaller det "float( <expr> )" eller
"lexical_cast< float >( <expr> )" eller noe annet er langt mindre
vesentlig.
* Jeg synes ikke at kompakt notasjon i seg selv er et verdig mål.
_Dersom_ kortere notasjon fremmer forståelsen og bidrar til å gjøre
programmet klarere, da er den verdt å streve etter.
ivr
--
<peder> igorr: tcl ja... det er fra de dypeste avgrunnene i helvete det...
<peder> php er bare fra foajeen
-- pederst på irc
| |
Bjarke Dahl Ebert (17-08-2002)
| Kommentar Fra : Bjarke Dahl Ebert |
Dato : 17-08-02 21:45 |
|
"Igor V. Rafienko" <igorr@ifi.uio.no> wrote in message
news:xjvlm76z8ml.fsf@asola.ifi.uio.no...
> [ Bjarke Dahl Ebert ]
> > > Da er det naturlig å spørre -- hva gjør man når tallet er skrevet
> > > etter bestemte nasjonale konvensjoner og du ønsker _ikke_ å
> > > forandre synes til _hele_ programmet ditt mhp. slike konvensjoner?
> > Ja, jeg kan jo ikke ændre den indbyggede type 'float'.
> Spørsmålet angikk ikke den interne representasjonen av floats (jeg ser
> ingen grunn til å bry seg om den).
Ingen har talt om intern repræsentation overhovedet.
> > Hvis jeg initialiserer en float med en streng, bruger den altid
> > engelsk decimalkomma, hvilket er det vi ønsker!
> Ønsker _vi_ det? Kunne du forklare hvorfor _vi_ skulle ønske det?
Ja, hvis der intet sted i programmet er nævnt noget om locale, så vil jeg
mene at man ville blive meget forvirret over at opdage at programmet
afhænger af brugerens
locale.
Strengen kan være kommet ind fra en konfigurationsfil, en registrysetting,
en del af en streng fra en database, eller skrevet ud af programmet selv
tidligere (måske på en anden maskinen på den anden side af jorden). Der er
et hav af muligheder.
At stiltiende parse efter brugerens locale kan give uønskede overraskelser.
Heldigvis fungerer C++'s "istream >>" på samme måde.
> (Personlig, ønsker jeg å bruke den konverteringsfunksjonen som passer
> til det dataformatet som skal behandles).
Selvfølgelig.
> > Hvis programmet skal kommunikere med almindelige dødelige brugere,
> > kan det da godt være at jeg vil læse en streng med dansk
> > decimalkomma:
> > print locale.atof("0,445")
> ... og dermed bruker man _to_ forskjellige teknikker for å gjøre
> logisk sett _den samme_ operasjonen?
Tjo, man bruger to forskellige funktioner til at udføre to forskellige
operationer. At det så "logisk set" er samme operation, kan de to funktioner
jo ikke rigtigt gøre noget ved.
Der er stor forskel på at parse i henhold til en valgt brugerrepræsentation
og sprogets egen entydige repræsentation ("entydig" i betydningen at sproget
(og udbredt koncencus) har dikteret formatet). Der er et forskel i niveau.
Det sidste har med bruger-IO at gøre, det første er mere lowlevel.
Der er jo heller ingen der forhindrer nogen i at lave:
def myatof(str, use_locale=False):
if (use_locale): return float(str)
else: return locale.atof(str)
(Jeg ved at dette er OffTopic på en C-nyhedsgruppe, men jeg har allerede
lave FUT til dk.edb.programmering én gang, uden held)
> * Konverteringen fra string til float kan skrives likeså kort i C++
> som i Python. Om man kaller det "float( <expr> )" eller
> "lexical_cast< float >( <expr> )" eller noe annet er langt mindre
> vesentlig.
Enig - selvfølgelig kan man i begge sprog skrive en funktion der gør eksakt
det ønskede.
> * Jeg synes ikke at kompakt notasjon i seg selv er et verdig mål.
> _Dersom_ kortere notasjon fremmer forståelsen og bidrar til å gjøre
> programmet klarere, da er den verdt å streve etter.
Enig.
Kompakt notation i sig selv fremmer ikke nødvendigvis forståelsen.
Men unødigt fyld hæmmer den i hvert fald.
Mvh. Bjarke
| |
Claus Rasmussen (17-08-2002)
| Kommentar Fra : Claus Rasmussen |
Dato : 17-08-02 22:57 |
|
Bjarke Dahl Ebert wrote:
> (Jeg ved at dette er OffTopic på en C-nyhedsgruppe, men jeg har allerede
> lave FUT til dk.edb.programmering én gang, uden held)
Hvorfor foreslår du ikke bare oprettelse af dk.edb.programmering.python i
stedet for at trolle her ? Jeg vil i hvert fald godt stemme for
-Claus
| |
Bjarke Dahl Ebert (18-08-2002)
| Kommentar Fra : Bjarke Dahl Ebert |
Dato : 18-08-02 08:58 |
|
"Claus Rasmussen" <clr@cc-consult.dk> wrote in message
news:ajmgqp$ldi$1@sunsite.dk...
> Bjarke Dahl Ebert wrote:
> > (Jeg ved at dette er OffTopic på en C-nyhedsgruppe, men jeg har allerede
> > lave FUT til dk.edb.programmering én gang, uden held)
> Hvorfor foreslår du ikke bare oprettelse af dk.edb.programmering.python i
> stedet for at trolle her ? Jeg vil i hvert fald godt stemme for
Jeg skriver et indlæg med FUT til dk.edb.programmering, og får svar i
dk.edb.programmering.c - hvad skal jeg så stille op? :)
Mvh. Bjarke
| |
Claus Rasmussen (18-08-2002)
| Kommentar Fra : Claus Rasmussen |
Dato : 18-08-02 12:04 |
|
Bjarke Dahl Ebert wrote:
> Jeg skriver et indlæg med FUT til dk.edb.programmering, og får svar i
> dk.edb.programmering.c - hvad skal jeg så stille op? :)
Ja, ja, ja. Du er helt udskyldig Det er jo ikke første gang, vi ser
dig reklamere for python her i gruppen. Det sker faktisk hver eneste gang,
du skriver her.
Det er ok en gang i mellem at få et andet perspektiv på et problem, og
se hvordan det kan løses i et andet sprog, men i længden bliver det
altså lidt trættende. Især når det alt i alt koger ned til "C++ er noget
skrammel - brug python i stedet".
Jeg synes, du skulle tænkte lidt over det med d.e.p.p .
-Claus
| |
Bjarke Dahl Ebert (18-08-2002)
| Kommentar Fra : Bjarke Dahl Ebert |
Dato : 18-08-02 19:42 |
|
"Claus Rasmussen" <clr@cc-consult.dk> wrote in message
news:ajnuuf$fue$1@sunsite.dk...
> Ja, ja, ja. Du er helt udskyldig
Netop
> Det er jo ikke første gang, vi ser
> dig reklamere for python her i gruppen. Det sker faktisk hver eneste gang,
> du skriver her.
Ah - det er vist en mild overdrivelse.
Men jeg skal nok i fremtiden holde Python-snak i en mere neutral gruppe. Jeg
forsøgte jo netop at flytte den del af tråden over i dk.edb.programmering,
fordi det var kommet til at handle mere om Python end C++.
> Det er ok en gang i mellem at få et andet perspektiv på et problem, og
> se hvordan det kan løses i et andet sprog, men i længden bliver det
> altså lidt trættende. Især når det alt i alt koger ned til "C++ er noget
> skrammel - brug python i stedet".
Jaja, okay, jeg skal nok skrue lidt ned for iveren. Jeg kan faktisk godt se
at det kan være irriterende. Jubelglade fortalere for et eller andet har vi
nok af . (Men jeg *er* jubelglad .
Det har bare været svært at se stiltiende til når folk bliver ved med at
komme rendende med problemer med callbacks, buffer overrun, polymorfe
containere, syntaksproblemer, osv. - problemer som man ikke burde finde sig
i. Så er det jo svært ikke at sige at det er nogle problemer man påfører sig
selv ved at benytte C++. Ups - nu gjorde jeg det næsten igen. NU stopper
jeg. Så. Nu siger vi nu. "Nu". Tak.
Mvh. Bjarke
| |
Claus Rasmussen (18-08-2002)
| Kommentar Fra : Claus Rasmussen |
Dato : 18-08-02 19:46 |
|
Bjarke Dahl Ebert wrote:
> Jaja, okay, jeg skal nok skrue lidt ned for iveren.
Ok. Så lader vi gå for denne gang
-Claus
| |
Igor V. Rafienko (17-08-2002)
| Kommentar Fra : Igor V. Rafienko |
Dato : 17-08-02 23:27 |
|
[ Bjarke Dahl Ebert ]
[ snip ]
> Enig - selvfølgelig kan man i begge sprog skrive en funktion der gør
> eksakt det ønskede.
Så hva _gnåler_ du om i
<URL:news:3d5d1fad$0$33552$edfadb0f@dspool01.news.tele.dk> da?
ivr
--
<peder> igorr: tcl ja... det er fra de dypeste avgrunnene i helvete det...
<peder> php er bare fra foajeen
-- pederst på irc
| |
Bjarke Dahl Ebert (18-08-2002)
| Kommentar Fra : Bjarke Dahl Ebert |
Dato : 18-08-02 09:03 |
|
"Igor V. Rafienko" <igorr@ifi.uio.no> wrote in message
news:xjvit2986kr.fsf@vestavind.ifi.uio.no...
> [ Bjarke Dahl Ebert ]
> > Enig - selvfølgelig kan man i begge sprog skrive en funktion der gør
> > eksakt det ønskede.
> Så hva _gnåler_ du om i
> <URL:news:3d5d1fad$0$33552$edfadb0f@dspool01.news.tele.dk> da?
Det var kode uden brug af adhoc-funktioner.
Nødvendige adhoc-funktioner skal vel regnes når man sammenligner løsninger.
Mvh. Bjarke
| |
Igor V. Rafienko (18-08-2002)
| Kommentar Fra : Igor V. Rafienko |
Dato : 18-08-02 15:16 |
|
[ Bjarke Dahl Ebert ]
[ snip ]
> Det var kode uden brug af adhoc-funktioner. Nødvendige
> adhoc-funktioner skal vel regnes når man sammenligner løsninger.
Hva om du forsøker å bruke hodet ditt litegrann?
Hvis du først skal kritisere C++ (og det er relativt enkelt gjort å
finne et område å kritisere), hva med å gjøre det skikkelig? Makter du
det, eller er det eneste du er i stand til nettopp det å komme med
tåpelige vitser som du selv vet er hverken morsomme eller
innsiktsfulle?
Vær så snill, se litt på språkdefinisjonen til C++ _før_ du kommer med
flere tåpelige utspill som har som sitt eneste formål å briljere med
din egen ignoranse (hint: Python sin __builtins__.float har en
tilsvarende motpart i standardbiblioteket til C++).
ivr
--
<peder> igorr: tcl ja... det er fra de dypeste avgrunnene i helvete det...
<peder> php er bare fra foajeen
-- pederst på irc
| |
Claus Rasmussen (14-08-2002)
| Kommentar Fra : Claus Rasmussen |
Dato : 14-08-02 20:10 |
|
Ivan Johansen wrote:
> Se det er jo noget helt andet. Claus og Leo har givet eksempler på hvordan
> det kan gøres med C funktioner. I C++ vil man dog ofte anvende en stream:
Dette trick er genialt. Konverterer fra alt til alt, der har en iostream
operatorer:
template<typename ToType, typename FromType>
inline
ToType lexical_cast(FromType from) {
std::strstream io;
ToType to;
if (!(io << from) || !(io >> to) || !(io >> std::ws).eof())
error();
return to;
}
Bruges sådan her:
char* s = "0.455";
float f = lexical_cast<float>(s);
Sakset fra www.boost.org .
-Claus
| |
Anders J. Munch (14-08-2002)
| Kommentar Fra : Anders J. Munch |
Dato : 14-08-02 22:03 |
|
"Claus Rasmussen" <clr@cc-consult.dk> skrev:
> Ivan Johansen wrote:
>
> > Se det er jo noget helt andet. Claus og Leo har givet eksempler på
hvordan
> > det kan gøres med C funktioner. I C++ vil man dog ofte anvende en
stream:
>
> Dette trick er genialt. Konverterer fra alt til alt, der har en iostream
> operatorer:
[snip lexical_cast]
Mjah, det er nu ikke helt så genialt som det ser ud. iostream operatorer er
ikke designet til serialisering.
Prøv fx.
string s("hello world");
cout << lexical_cast<string>(s);
- Anders
| |
Claus Rasmussen (15-08-2002)
| Kommentar Fra : Claus Rasmussen |
Dato : 15-08-02 19:59 |
|
Anders J. Munch wrote:
> Mjah, det er nu ikke helt så genialt som det ser ud. iostream operatorer
> er ikke designet til serialisering.
>
> Prøv fx.
>
> string s("hello world");
> cout << lexical_cast<string>(s);
Den detalje tror jeg godt, jeg kan leve med, når alternativet til
dit eksempel er:
string s("hello world");
cout << s;
MVH
-Claus
| |
|
|