Problema conversión Unsigned char a char

Iniciado por juliodiez, 19 Enero 2013, 01:00 AM

0 Miembros y 1 Visitante están viendo este tema.

juliodiez

Hola a todos,

resulta que tengo un problema en la conversión de un array de caracteres de unsigned char, y lo quería convertir a un array char o a un String^.

El array es este, y sí contiene datos


unsigned char buf[10];
char answer[10];


y trato de hacer el cast de esta forma, pero el nuevo array answer queda vacío en ambas.


for(i=0;i<10;i++)
{
  answer[i]=(char)buf[i];
                 
}


answer=(char *)buf;



Si alguno me pudierais ayudar os lo agradecería. Un saludo.

durasno

Hola! answer como esta declarado???? Si answer esta declarado como:
answer[N]; // N tamaño del arreglo
hacer esto es un error:
answer=(char *)buf;


Subi mas codigo para ayudarte mejor.. y a q llamas "vacio"??

SAludos

PD: si estas en C++ existe la clase string
Ahorrate una pregunta, lee el man

juliodiez

#2
Sí, lo tengo declarado así,

char answer[10]="";

Vacío porque al imprimirlo por pantalla no muestra nada.

Sí, estoy en C++. Alguna idea? gracias!

durasno

Entonces no veo ningun inconveniente, ya que esto deberia funcionar:
Código (cpp) [Seleccionar]
for(i=0;i<10;i++)
{
   answer[i]=(char)buf[i];
                   
}


Subi el codigo q tenes..Saludos


PD: tenes la clase string
Ahorrate una pregunta, lee el man

juliodiez

#4
Con la clase string sería algo así? Tampoco me muestra nada.

std::string answer1;

for(i=0;i<10;i++)
{
   answer1.push_back((char)buf[i]);
                 
}


Te pongo algo más de código, que va antes del código de  antes. res siempre es 10, que es el número de bytes leidos.

memset(buf,0x00,sizeof(buf));


res = 0; //Number of bytes received

res = hid_read(handle, buf, sizeof(buf));


Gracias por tu tiempo!!