Почему al_draw_textf () печатает числа вместо алфавитов, хранящихся в строковой переменной? - PullRequest
0 голосов
/ 07 июня 2019

Я хочу напечатать имя пользователя на экране allegro, для этого я объявляю строковую переменную и прошу пользователя ввести его имя, после этого я преобразую строку в const char *, чтобы я могпередать переменную на al_draw_textf().Но даже после передачи переменной const char * в функцию она печатает некоторые цифры вместо фактического имени, введенного пользователем в виде алфавита.Фрагмент кода прилагается в конце.

Нет ошибки времени компиляции, я использую Visual Studio 2019 Enterprise и работаю с 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 голосов
/ 07 июня 2019

Строка формата %d используется для печати целых чисел. Чтобы напечатать char * как текст, используйте %s.

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