在 C 中将 Uint16 转换为字符串

标签 c input sdl uint

我正在尝试使用 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/

相关文章:

c - C 中的值返回 null,不知道为什么

c - 我如何使用scanf读取c中的txt文件

css 问题,输入 [type ="text"] 不覆盖 *

python - 如何在 Python 中打开并读取输入文件并将其打印到输出文件?

regex - 将 inputText 值限制为仅字母字符

c++ - 无法在 Windows 上将 SDL 与 MinGW 一起使用

c++ - HWSURFACE 与纹理有何不同?

macos - 如何在 macOS 上禁用 vsync

c - 获取用户输入并使用函数检查其是否有效

c++ - 在 C++ 中将矩阵高效分解为方形子矩阵