为什么 al_draw_textf() 打印数字而不是存储在字符串变量中的字母表?
Why does al_draw_textf() prints numbers instead of alphabets stored in a string variable?
我想在快板屏幕上打印用户名,为此我声明了一个字符串变量并要求用户输入他的名字,之后,我将字符串转换为 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);
%d
格式字符串用于打印整数。要将 char *
打印为文本,请使用 %s
.
al_draw_textf(font, al_map_rgb(255, 255, 255), 10, 10, 0, "Hi, %s",Name);
我想在快板屏幕上打印用户名,为此我声明了一个字符串变量并要求用户输入他的名字,之后,我将字符串转换为 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);
%d
格式字符串用于打印整数。要将 char *
打印为文本,请使用 %s
.
al_draw_textf(font, al_map_rgb(255, 255, 255), 10, 10, 0, "Hi, %s",Name);