c++ to - Wie kann ich einen Int in einen CString konvertieren?



mfc char (3)

Hier ist eine Möglichkeit:

CString str;
str.Format("%d", 5);

In Ihrem Fall versuchen Sie _T("%d") oder L"%d" anstelle von "%d"

Ich kann ein Double zu einem CString mit _ecvt

result_str=_ecvt(int,15,&decimal,&sign);

Also, gibt es eine Methode wie die obige, die ein int in CString ?


Wenn Sie etwas, das Ihrem Beispiel ähnlicher ist, möchten, versuchen Sie _itot_s. Bei Microsoft-Compilern verweist _itot_s auf _itoa_s oder _itow_s, abhängig von Ihrer Unicode-Einstellung:

CString str;
_itot_s( 15, str.GetBufferSetLength( 40 ), 40, 10 );
str.ReleaseBuffer();

Es sollte etwas schneller sein, da es kein Eingabeformat parsen muss.


Hier ist mein beliebtes Bit-Arithmetik-Makro, das für alle Arten von vorzeichenlosen Integer-Arrays von unsigned char bis zu size_t funktioniert (der größte Typ, mit dem man effizient arbeiten kann):

#define BITOP(a,b,op) \
 ((a)[(size_t)(b)/(8*sizeof *(a))] op ((size_t)1<<((size_t)(b)%(8*sizeof *(a)))))

Um ein bisschen zu setzen:

BITOP(array, bit, |=);

Um etwas zu löschen:

BITOP(array, bit, &=~);

Um ein wenig zu wechseln:

BITOP(array, bit, ^=);

Um ein bisschen zu testen:

if (BITOP(array, bit, &)) ...

usw.





c++ visual-c++ mfc