Задать вопрос
@Trans00
Java-разработчик

Как получчить числовое отображение unsigned char с помощью sprintf() в с?

Пытаюсь напечатпть два чара на экране:
sprintf (str, "Max:%d,Min:%d", 0x05, 0x00);
А в ответ вместо "Max:5,Min:0" получаю "Max:1280,Min:12...", почему так происходит?
  • Вопрос задан
  • 2485 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик на C++
    12 месяцев
    Далее
  • Академия Эдюсон
    Разработчик игр на Unreal Engine + ИИ
    9 месяцев
    Далее
  • Stepik
    Профессия: Разработчик C++ (Junior)
    2 месяца
    Далее
Решения вопроса 1
@Trans00 Автор вопроса
Java-разработчик
В результате сделал насильное приведение чаров к интам:
sprintf (str, "Max:%d,Min:%d",(int)mem.cell[2], (int)mem.cell[3]);
Костыль, но работает. Спасибо за помощь=)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Eddy_Em
Потому что маны внимательно читать надо!
sprintf (str, "Max:%u,Min:%u", 0x05, 0x00);
а еще правильнее - так:
sprintf (str, "Max:%hhu,Min:%hhu", 0x05, 0x00);
Ответ написан
gbg
@gbg
Любые ответы на любые вопросы
Покажите весь код. Потому как ваш пример работает именно так, как вы ожидаете.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы