为什么al_draw_textf()打印数字而不是存储在字符串变量中的字母?

时间:2019-06-07 09:40:23

标签: c++ c visual-studio visual-c++ allegro5

我想在快板屏幕上打印用户名,为此,我声明一个字符串变量并要求用户输入他的名字,然后,我将字符串转换为const char *,以便将变量传递给al_draw_textf()。但是即使将const char *变量传递给函数后,它也会打印一些数字,而不是用户作为字母输入的实际名称。 代码片段附在最后。

没有引发编译时错误,我正在使用Visual Studio 2019企业版并与Allegro 5一起使用。 我正在运行该程序时发布一些屏幕截图。

std::string name; 
std::cout << "\n\nHello player, what's your name?"; getline(cin, name); 
name = name.c_str();
const char* Name = name.c_str();
al_draw_textf(font, al_map_rgb(255, 255, 255), 10, 10, 0, "Hi, %d",Name);

1 个答案:

答案 0 :(得分:0)

%d格式的字符串用于打印整数。要将char *打印为文本,请使用%s

al_draw_textf(font, al_map_rgb(255, 255, 255), 10, 10, 0, "Hi, %s",Name);