Преобразование Uint16 в строку в C
Я пытаюсь использовать 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 ответа
Решение
Хотите ли вы иметь код-ключ (номер)?
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);
Вы пробовали sprintf? http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/