/ 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
AnsiString til int
Fra : Rasmus


Dato : 01-11-01 15:13

Hejsa!!
Hvordan gør jeg, hvis jeg i Borland C++Builder vil converte en
AnsiString(kun med tal) til en int.
Jeg har prøvet med dette, det skal lige siges at der i Edit1->Text står
"12", og jeg include'er stdlib.h:

int antal;
antal = atoi(Edit1->Text);

men der kommer fejlen:
[C++ Error] MainForm.cpp(53): E2285 Could not find a match for
'atoi(AnsiString)'

Skal jeg include flere filer, eller definere antal eller Edit1->Text på en
anden måde. Jeg ville blive meget glad hvis der var nogen der vidste hvordan
jeg skal gøre.

Venlig Hilsen
Rasmus Steffensen



 
 
Martin Schultz (01-11-2001)
Kommentar
Fra : Martin Schultz


Dato : 01-11-01 15:49

Prøv at kigge på funktionen intostr i hjælpefilen.

Ivan Johansen (01-11-2001)
Kommentar
Fra : Ivan Johansen


Dato : 01-11-01 20:42

Rasmus wrote:

> Hejsa!!
> Hvordan gør jeg, hvis jeg i Borland C++Builder vil converte en
> AnsiString(kun med tal) til en int.
> Jeg har prøvet med dette, det skal lige siges at der i Edit1->Text står
> "12", og jeg include'er stdlib.h:
>
> int antal;
> antal = atoi(Edit1->Text);

atoi() tager en char* som parameter, mens du giver den en AnsiString. En
AnsiString kan dog konverteres til char* med c_str():
antal = atoi(Edit1->Text.c_str());

En bedre metode er at anvende ToInt() eller ToIntDef():
antal = Edit1->Text.ToInt();

eller

antal = Edit1->Text.ToIntDef(-1);

ToInt() smidder en exception, hvis teksten ikke kan konverteres, mens
ToIntDef() returnerer parameteren (her -1) hvis teksten ikke kan
konverteres.

Ivan Johansen


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