Как написать функцию отображения числа на дисплее для микроконтроллеров с учётом стирания символов при обновлении числа в меньшую сторону

Когда отображаем на дисплее (не важно на каком, OLED, LCD, TFT) число, скажем, "100", а потом оно обновилось, скажем, на "99", то как правильно стереть лишний символ? На чистом Си без использования классов. Понимаю, что вопрос глупый, но ответ в гуглах я не нашёл и не додумался сам, т.к., I'm new in programming) Что я пробовал? Создавал структуру и для вывода каждого значения (если выводится несколько значений на мониторе в разных местах) использовал различные объекты структуры. В глобальной структуре записывается строка. Если strlen следующего числа-строки меньше, то рисуем предыдущее число цветом фона, затирая его, и пишем новое. В структуру записываем новое число. Есть ли другие, более умные и оптимизированные варианты решения этой проблемы? Спасибо за ответы!


Ответы (1 шт):

Автор решения: Сергей Симонов

Решение вашей задачи зависит от контекста. Для отображения одной строки, самый очевидный способ формировать строку с максимальной длинной и переписывать её целиком. Пусть размер экрана вмещает 5 символов. Тогда:

char str[5+1]; // еще одни символ для конца строки
sprintf(str, "%5d",123);
std::cout<<str; // выводите строку на экран
→ Ссылка