@Trans00
Java-разработчик

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

Пытаюсь напечатпть два чара на экране:
sprintf (str, "Max:%d,Min:%d", 0x05, 0x00);
А в ответ вместо "Max:5,Min:0" получаю "Max:1280,Min:12...", почему так происходит?
  • Вопрос задан
  • 2464 просмотра
Решения вопроса 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
Любые ответы на любые вопросы
Покажите весь код. Потому как ваш пример работает именно так, как вы ожидаете.
Ответ написан
Ваш ответ на вопрос

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

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