我在转换时遇到以下问题(或访问数据,我不确定):
有map<int, string> keys
我用来描述按钮的,数字与 Allegro5 键码匹配(例如keys[81] = "PgDown"
)。我想使用 al_draw_text 在屏幕上打印数据,需要char*
传递参数。
我尝试以这种方式访问数据:
char dropdownBuffer[16];
cout << keys[dropdownKeyCode] << endl;
sprintf_s(dropdownBuffer, "%s", keys[dropdownKeyCode]);
cout << dropdownBuffer << endl;
gui.drawButton(CLIENT_PADDING, CLIENT_PADDING+50+219, 123, 38, dropdownBuffer);
控制台应该打印字符串Spacja
两次,但第二次有一些随机字符。
我现在做错了什么?也许还有其他可能的方法可以将此字符串转换为字符?