我正在尝试使用 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 新手,谢谢
最佳答案
您想要 key 代码(数字)吗?
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);
关于在 C 中将 Uint16 转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7955073/