1 (edited by DZ 2019-07-03 10:48:39)

Topic: uint8_t в текстовой строке

Я вывожу текущую дату на смартфон. У меня каждый элемент даты формируется в формате uint8_t. Если я хочу вывести в текстовую строку например год, выводится не 2019, а 227. Пытался перевести uint8_t в int, без результата.
Как?

2

Re: uint8_t в текстовой строке

Show your code.

3

Re: uint8_t в текстовой строке

DZ wrote:

У меня каждый элемент даты формируется в формате uint8_t. Если я хочу вывести в текстовую строку например год, выводится не 2019, а 227.

Вы не можете хранить значение года в типе uint8_t, так как 2019 это больше максимального значения типа uint8_t равного 255. Может быть проблема в этом?

uint8_t day;
uint8_t month;
uint16_t year;
.......
sprintf (RemoteXY.text, "%d.%d.%d", day, month, year);  // RemoteXY.text должен быть не менее 11 символов, а лучше 14

4

Re: uint8_t в текстовой строке

remotexy wrote:
DZ wrote:

У меня каждый элемент даты формируется в формате uint8_t. Если я хочу вывести в текстовую строку например год, выводится не 2019, а 227.

Вы не можете хранить значение года в типе uint8_t, так как 2019 это больше максимального значения типа uint8_t равного 255. Может быть проблема в этом?

uint8_t day;
uint8_t month;
uint16_t year;
.......
sprintf (RemoteXY.text, "%d.%d.%d", day, month, year);  // RemoteXY.text должен быть не менее 11 символов, а лучше 14

Да, спасибо.
Мой косяк.