PDA

Visualizza la versione completa : C::Conversione da CString in esadecimale


DarthSandr
15-01-2008, 10:09
Salve a tutti.
Ho un oggetto di tipo CString contenente un numero, ad esempio "246" e voglio ottenere dall'oggetto CString un carattere esadecimale contenente il valore del numero da salvare in un char.
E' possibile fare qualcosa del genere? Vi viene in mente qualcosa?

Grazie

Ciao
Sandro

oregon
15-01-2008, 11:07
Ma vuoi trasformare il 246 in esadecimale (F6) in un'altra stringa o vuoi ottenere il valore binario in un char?

DarthSandr
15-01-2008, 12:02
Originariamente inviato da oregon
Ma vuoi trasformare il 246 in esadecimale (F6) in un'altra stringa o vuoi ottenere il valore binario in un char?

In realta' ho bisogno di salvare il contenuto del CSTring in un char.

oregon
15-01-2008, 12:10
Mah ... presuppongo il valore convertito in binario ... quindi

CString s;

...

char x=(char)atoi(s);

DarthSandr
15-01-2008, 12:28
Ho provato ma mi da quest'errore:

error C2664: 'atoi' : cannot convert parameter 1 from 'class CString' to 'const char *'
No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called

Provo a mettere questo codice:

CString m_msg;
char * pBuffer = (char *)(LPCTSTR)m_msg;
char x = (char)atoi(pBuffer);

L'ho provata ma mi prende solo il primo carattere; cioe' se ho 246 nel CString nel char x mi ritrovo solo 2

Che fare?

oregon
15-01-2008, 13:01
Che tipo di progetto hai utilizzato?

Ho creato un semplice progetto Console C++ con il supporto di MFC e scrivendo



CString v;

v="246";

char x=atoi(v);

printf("%c\n", x);


non ho problemi ...

DarthSandr
15-01-2008, 13:04
Sto usando Microsoft embebbed Visual C++

oregon
15-01-2008, 13:09
Prova

char x=atoi((LPCTSTR)v);

XWolverineX
15-01-2008, 13:25
Che ne dite di



CString s = "Quellchetipareepiace";
char *c = s.Getbuffer(0);

oregon
15-01-2008, 13:42
Semmai

CString s = "246";

LPTSTR p = s.GetBuffer();
char x = (char)atoi(p);
s.ReleaseBuffer();

Loading