SoloCodigo

Programación General => C/C++ => Visual C++ => Mensaje iniciado por: termidor en Jueves 11 de Febrero de 2010, 16:40

Título: Convertir CString a char[]
Publicado por: termidor en Jueves 11 de Febrero de 2010, 16:40
Hola,

Estoy seguro de que la pregunta será bastante simplona, incluso absurda, pero no soy capaz de ver que está mal aquí:

Código: C
  1. char buffer[100];
  2. memset(buffer, 0, sizeof(buffer));
  3. sprintf(buffer, "%s", cadena.GetBuffer());
  4.  

cadena es una variable de tipo CString.

Lo que quiero hacer es copiar el texto de la variable "cadena" a "buffer". Pero el resultado de la función sprintf es que a la variable "buffer" solo se copia la primera letra de la variable "cadena". Es decir, si cadena = "Hola", entonces en buffer solo se copia la "H".

Muchas gracias y perdón por una pregunta tan tonta. Sigo investigando...
Título: Re: Convertir CString a char[]
Publicado por: Eternal Idol en Jueves 11 de Febrero de 2010, 16:46
Puede ser que estes tratando con una CStringW (en Unicode) entonces necesitas trabajar con wchar_t y no con char. En ese caso podes usar wcscpy para copiar la cadena.
Título: Re: Convertir CString a char[]. SOLUCIONADO
Publicado por: termidor en Jueves 11 de Febrero de 2010, 17:21
Pues tienes razón. He ido a las propiedades del proyecto y en "Juego de caracteres" estaba puesto en "unicode". Lo he cambiado a "Sin especificar" y ya va como tiene que ir. Copia la cadena entera sin problemas.

Muchas gracias y un saludo!!
Título: Re: Convertir CString a char[]
Publicado por: Eternal Idol en Jueves 11 de Febrero de 2010, 21:11
De nadas  B)