Re: sprintf - co dělám blbě?

Martin Záruba swz na volny.cz
Pondělí Duben 15 13:59:29 CEST 2024


obě varianty, tedy použít snprintf i zápis 123456UL dávají stejný 
nesmysl. Nefunguje ani

charsStringBuffer[50];
uint32_tx=123456UL;
sprintf(sStringBuffer,"%6u",x);
Serial.print(sStringBuffer);
nicméně
charsStringBuffer[50];
sprintf(sStringBuffer,"%6u",123456/2);
Serial.print(sStringBuffer);

dá správně 61728

takže to vypadá na chybu v snprintf

ach jo.

Máte typ, co použít, aby to formátovalo správně a šlo udělat tabulku bez 
nutnosti u toho dostat amok?

Martin Záruba

Dne 15.4.2024 v 13:43 Ladislav Vaiz napsal(a):
> Formátovací znak "u" znamená unsigned int, což nemusí nutně být uint32_t.
> Není sizeof(unsigned) = 2?
>
> L.
>
>
> On 15.04.2024 13:41, Jaroslav Buchta wrote:
>> sprintf(sStringBuffer,"%6u",123456UL);
>>
>> Asi to bere konstantu implicitne jako 16b
>>
>>
>> Dne 15.04.2024 v 13:38 Jindroush napsal(a):
>>> Prostě se to někde orizne na 16bitů. Nemá to být ul?
>>> Opět upozorňuji na zdravý zvyk používat snprintf...
>>> J.
>>>
>>> ---------- Původní e-mail ----------
>>> Od: Martin Záruba <swz na volny.cz>
>>> Komu: Martin Zaruba <hw-list na list.hw.cz>
>>> Datum: 15.04.2024 13:35:10
>>> Předmět: sprintf - co dělám blbě?
>>>
>>>
>>>
>>>     Tento triviální kousek programu
>>>
>>>
>>>     charsStringBuffer[50];
>>>     sprintf(sStringBuffer,"%6u",(uint32_t)123456);
>>>     Serial.print(sStringBuffer);
>>>
>>>
>>>     vrací hodnotu 57920. Ale proč?
>>>
>>>
>>>     -- 
>>>
>>>     Martin Záruba
>>>
>
>
> _______________________________________________
> HW-list mailing list  -  sponsored bywww.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20240415/8411494e/attachment.htm>


Další informace o konferenci Hw-list