|
| 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
| |
|
|