SoloCodigo
Programación General => C/C++ => Visual C++ => Mensaje iniciado por: perverso en Sábado 31 de Enero de 2009, 17:41
-
Saludos:
Soy nuevo en el foro y en visual c++ 2008, antes programaba en borland. Estoy tratando de cojer chars de Files con fgetc() y agregarlas a un String^ (con +=) pero cuando veo con el debug, el char se agrega al string pero como codigo ASCII, es decir si con fgetc recojo una 'h' y lo agrego al String^ se agrega, pero envez de agregar la 'h' agrega un 72 (el codigo AsCII)
el codigo es este
//*****************************************************
char c=' ';
String ^A;
errno_t err = 0;
size_t convertedChars = 0;
size_t sizeInBytes;
char *Aaa;
while(!feof(read))
{
while(c != ':' && !feof(read))
{
c=fgetc(read);
}
while(c != 10 && !feof(read))
{
c=fgetc(read);
//aqui esta el problema
A+=c;
}
//Converting from String^ to Char*
pin_ptr<const wchar_t> Aa = PtrToStringChars(A);
sizeInBytes = ((A->Length + 1) * 2);
Aaa = (char *)malloc(sizeInBytes);
wcstombs_s(&convertedChars, Aaa, sizeInBytes,Aa, sizeInBytes);
//Writing the char* in Record.txt
fprintf_s(Apr,"%sn",Aaa);
A="";
c=' ';
convertedChars=0;
}
fclose(Apr);
//*****************************************************
espero que me ayuden a resolver esto, tambien quisiera que me digan si hay otra forma mas corta de convertir de String^ a Char* por que ta como k pendejo 4 lineas para convertir a char*, gracias
-
mmm...yo utilizaria los comandos de la libreria string.h, que son ansi c y que para el caso te podrian servir...
suponiendo que string sea la cadena y a el caracter con strcat(string,a)...tendrias al final de la cadena el caracter
o si deseas modificar a tu antojo el arreglo puedes usar sprintf(cadena," %f %c %i ",c,a,b)....aqui puedes convertir cualquier tipo de dato a caracter y guardarlo como tal dentro de una cadena