Преобразование Uint16 в строку в C - PullRequest
0 голосов
/ 31 октября 2011

Я пытаюсь использовать SDL и читать пользовательский ввод, для этого мне нужно преобразовать Uint16 в строку, вот мой код:

      if( event.type == SDL_KEYDOWN )
                {

                    if( strlen(str) <= 16 )
                    {
                        if( ( event.key.keysym.unicode >= (Uint16)'a' ) && ( event.key.keysym.unicode <= (Uint16)'z' ) )
                        {
                            //imprimir("espaco");
                            //strcat(str, (char*)event.key.keysym.unicode);
                            imprimir((char*)event.key.keysym.unicode);
                        }
}
}

я не могу заставить его работать, я уже пробовал itoa, atoi, strcat, суммируя event.key.keysym.unicode в int, затем конвертирую в char, я новичок в C, спасибо

Ответы [ 2 ]

2 голосов
/ 31 октября 2011

Хотите ли вы иметь код ключа (число)?

char buffer[16];
snprintf(buffer, sizeof(buffer), "%d", event.key.keysym.unicode);
imprimir(buffer);

Или вам нужен символ, представляющий?

char buffer[2];
snprintf(buffer, sizeof(buffer), "%c", event.key.keysym.unicode);
imprimir(buffer);
0 голосов
/ 31 октября 2011
...