ASCII-Wert to Int
-
Hey Leude!
hab da son kleines Problemchen!
Und zwar will ich ein Programm schreiben, dass einen Char
in den entsprechenden ASCII-Wert(dec) umwandelt!char *var = Edit1->Text.c_str(); Edit1->Text = (int)var;
Funzt nicht ganz.... bekomm nur die Speicheradresse zurück.. logisch!
Danke für eure Antworten!Greetz
Pelipe
-
Hallo
das gehört ins Builder-Forum.
int Zahl = StrToIntDef(Edit1->Text, 0); Edit1->Text = Zahl;
bis bald
akari
-
Ich kann mir nicht ganz vorstellen, wie du einen Text in eine Zahl umwandeln willst? Das geht natürlich nur mit einzelnen Zeichen, und schon garnicht mit einem Pointer, auf ein char-Array...
Das würde funktionieren:
char var = 'a'; int zahl = (int)var;
mfg,
C++ Junkie
-
Tag,
schau dir deinen Code nochmal genau an. Er bringt dir naemlich nichts.
Edit1->Text wird die Daten als Text behandeln. Ob du die vorher in einen
Zahlenwert umwandelst oder nicht, spielt dabei keine Rolle.Ansonsten gibt es da noch AnsiString::ToInt() etc.
mfg
v R
-
Also unter DOS geht das ja ganz einfach:
char c = getch(); cout << (int)c;
Aber unter Win nicht!!!
Gruß
Pelipe
-
Das ist auch keine Zeichenkette.
mfg
v R
-
Und zwar will ich ein Programm schreiben, dass einen Char
in den entsprechenden ASCII-Wert(dec) umwandelt!Wenn ich das richtig intepretiere, möchte er nicht eine Zahl im Text in einen int-Wert umwandeln, sondern den ASCII-Wert eines(!) char-Zeichens herausfinden.
Wie gesagt:
char c = 'a'; int i = (int)c
Dabei ist (int) eigentlich überflüssig, da das automatisch vom Compiler übernommen werden sollte.
mfg,
C++ Junkie
-
C++ Junkie, Du hast es erraten!
Aber ich kriegs nich hin, das mit ner Eingabe zu machen...
Also mit ner TEdit soll dann ein zeichen eingegeben und dann
irgendwo ausgegeben werden...
Hört sich einfach an...
Oder kann mir einer von euch verraten, wie ich einen AnsiString in
einen char umwandle? kein char***** !!
mfg, Pelipe
-
Hallo
das würde doch schon im Builder-Forum gesagt:
char ErstesZeichen = Edit->Text[1];
bis bald
akari
-
Nicht
char ErstesZeichen = Edit->Text[1];
sondern
char ErstesZeichen = Edit->Text[0];
mfg,
C++ Junkie
-
Nein.
Bei AnsiString beginnt die Zählung mit 1
Aber wie schon ein paar mal gesagt ghört dieser Thread ins BCB-Forum.
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Borland C++ Builder (VCL/CLX) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Wie wär's denn mit
int asciiwert = Edit1->Text[1];
-
Hallo Pelipe,
bei dem AusdruckEdit1->Text
handelt es sich um einen AnsiString. AnsiString ist eine Klasse mit einer Reihe von Funktionen die du im Einzelnen in der Hilfe zu Ansistring nachlesen kannst.
Zum Beispiel gibt die Methode c_str das AnsiString-Objekt als nullterminiertes Zeichen-Array zurück.
char* __fastcall c_str() const;
dann kannst du auch sscanf nutzen.
Viel Erfolg
evi48