int-Werte in char schreiben
-
Hallo !
Ich habe folgendes Problem. Ich will Zahlen (int) hintereinander reihen. Also als Beispiel 12 und 34 woraus 1234 werden soll. Wie geht sowas ohne die Zahlen mathematisch zu addieren ? Am liebsten wäre mir hinterher ein char. Also so nach dem Motto:
char variable = 12+34;Das geht natürlich nicht, ch weiß, aber ich wollte e nur mal verdeutlichen. In PHP gibts dafür den Punktoperator.
Später könnte es sein, dass ich dann auch zwischen 12 und 34 ein Zeichen bzw. eine Zahl dazwischen packen will. Gibts in C++ sowas ???
-
benutz string oder CString ( da du ja im mfc forum bist
)
such mal in der msdn nach atoi und dann schau wie man i nach string bringt
oder einfach ( mal aus dem kopf heraus versuchen )
int x = 12; int y = 34; CString str; str.Format("%d%d", x,y); // oder str.Format("%d__MEIN_TRENN_ZEICHEN__%d",x,y); // mit deinem trennzeichen
finger weg von char arrays!!!!!
nimm string für sowas ( im "normalen" )
und
CString bei visual!
-
noch ne Anmerkung zu char: damit speicherst du EIN Zeichen, keine Zeichenkette. Dazu brauchst du ein Feld von chars oder, siehe Vorredner, einfach ne String-Klasse benutzen
-
Ich brauche unter anderem (!) deswegen als Ergebnis ein char, weil ich mit einigen zusammengesetzten Werten einen Dateinamen bilden will, den ich dann in fopen einbinde. In fopen kann man als Dateinamen aber nur const char* nehmen.
-
selbst const char* ist üblicherweise ein Zeiger auf ein komplettes Char-Array (und fopen erwartet dort auch KEIN Einzelzeichen ;). Deswegen solltest du aber trotzdem eine gegebene String-Klasse für deine "Arithmethik" verwenden - std::string hat den Member c_str() zur Umwandlung nach const char*, MFCs CString hat eine implizite Typumwandlung:
std::string sname; //Name zusammenbauen fopen(sname.c_str(),...); CString cname; //Name zusammenbauen fopen(cname,...);