1

Téma: sscanf

Nějak ne úplně dobře funguje sscanf pro unsigned int s nastaveným nevyšším bitem. Tady je příklad:

    unsigned int a;
    sscanf("FEDCBA98", "%08X", &a);
    printf ("a=%08Xn", a);

Výstup produkuje a=7FFFFFFF, což zřejmě není správně. Pro vstup "7EDCBA98" je už ale výsledek správný, což ukazuje na ten nejvyšší bit.

Není to nic vážného a umím to udělat jinak, ale podle popisu je X specifier pro unsigned hexadecimal integer. Takže až bude čas, tak se na to zkuste podívat.

2

Re: sscanf

Děkuji za informaci, podívám se na to. Velké X by mělo být unsigned, očividně to tak není zpracováno.

Dočasně to lze řešit funkcí strtoul().

Pochlubte se - popište jak využíváte své zařízení SDS zde ! Můžete si bezplatně přidat svou reklamu !