2.4k Aufrufe
in Anwendungen(Java,C++...) von
Wieso funktionirt das nicht?:

int x;
x = atoi(t1->Text);



stdlib.h ist richtig importiert.. :S
Er meckert aber, "string kan nicht in int convertirt werden" - logisch, deshalb verwende ich ja atoi... :/

4 Antworten

0 Punkte
von son_quatsch Experte (5.3k Punkte)
Das liegt daran, dass atoi() für altmodische Zeichenketten konzipiert ist statt neumodische Strings - das sind unterschiedliche Datentypen. Deine Lösung ist jedoch trivial:
int x;
x = atoi(t1->Text.c_str());
0 Punkte
von
danke, funktionirt aber noch nicht. :)

er regt sich auf, dass .c_str() ->c_str() sein sollte - was auch nicht geht.
Was muss ich denn importiren, um cstr verwenden zu können?

sollte doch eigentlich alles abdecken:
#include <stdlib.h>
#include <iostream>
#include <cstring>
#include <string>



Danke! :)
0 Punkte
von
ich denke mal dein problem hat mit atoi() nichts zu tun

gibt mal den vollständigen quellcode hier rein.

lagere den array zugriff mal aus der atui() funktion aus, damit du den mit dem debugger bequemer anfassen kannst, zB

anstatt:

int x;
x = atoi(t1->Text);

schreibe

int x;
char *y;

y = t1->Text;
x = atoi( y);



dann kannste zu y hinsteppen und mit den zeigern spielen :-)

LG
0 Punkte
von Experte (3.2k Punkte)
die schreibweise mit t1->Text klingt verdächtig nach Borland. Sollte also der Typ von t1->Text AnsiString sein (is standart bei borland), sollte es eig gehn mit:
int x= t1->Text.ToInt()

übrigens: falls in t1->Text keine zahl steht, wird ne exception geworfen. gab noch ne andere möglichkeit, das zu verhindern, kann ich mich aber grad nich mehr dran erinnern (hab kein borland mehr). Musste halt try-catch benutzen.

Ele

Deine Antwort

Dein angezeigter Name (optional):
Datenschutz: Deine Email-Adresse benutzen wir ausschließlich, um dir Benachrichtigungen zu schicken. Es gilt unsere Datenschutzerklärung.
Anti-Spam-Captcha:
Bitte logge dich ein oder melde dich neu an, um das Anti-Spam-Captcha zu vermeiden.
...