Ви не увійшли.
Сторінки 1
Добрый вечер, подскажите, как правильно сформировать sprintf для анимации настройки времени, когда мигают часы. Спасибо!
if(flashShowTimer + 1000 <= millis()){
flashShow = !flashShow;
flashShowTimer = millis();
sprintf(szMesg, "%02d%c%02d", (flashShow ? hour() : NULL),":" , minute());
}
Остання редакція ckret (2019-07-11 20:40:59)
Неактивний
Добрый вечер, подскажите, как правильно сформировать sprintf для анимации настройки времени, когда мигают часы. Спасибо!
if(flashShowTimer + 1000 <= millis()){ flashShow = !flashShow; flashShowTimer = millis(); sprintf(szMesg, "%02d%c%02d", (flashShow ? hour() : NULL),":" , minute()); }
NULL это указатель на "ничего", с условным численным значеним адреса, а не переменная. Обычно равен нулю. И оператор сравнения наоборот. Чтобы мигали, нужно поочерёдно, через интервал времени, писать то пробелы то значения. Если работает, как нужно - можно считать, что правильно. А у вас всё неправильно.
Спасибо за информацию по NULL, когда самоучка это похоже на дом с пропущенными кирпичами.
Сама загвоздка возникла с sprintf, пробел это переменная String (s), а числовая (d). Библиотека возвращает hour() как char вроде.
И если числовая переменная пустая при %02d , то вместо пустоты имеем ноль, если сделать записть %2d , то теряется задумка в добавление ноля в числах меньше 10.
Если кто то может помочь привести запись в божеский вид, буду очень благодарен.
Неактивний
Здесь больше информации: https://sharpened.ucoz.ru/lib/polnyj_spravochnik_po_c-gerbert_shildt-2006.pdf . Но это не исключает изучения образовательной литературы по программированию. Функция sprintf(.) не позволяет выводить все пробелы вместо нуля, один ноль всё равно останется. Читайте, учитесь, подробно разбирайте тексты примеров и всё получится.
Сторінки 1