This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Incorrect work of the sprintf function

char str [4];

sprintf (str, "%.2x", 0x01);//Conversion of byte to the 2nd bit hexadecimal value

I expect in str[0] 0 character, in str[1] 1 character, that is '0' and '1'.
As a result function returns '1' and 'C'.
Remaining numbers - it is normal...

Parents
  • All thanks for discussion.
    Works correctly:
    sprintf (str, "%.2x", (unsigned int)0x01)
    sprintf (str, "%2.2x", (unsigned int)0x01)
    There is a question. Why in Embarcadero® C++Builder 10.1 Berlin transformation of types isn't required.

Reply
  • All thanks for discussion.
    Works correctly:
    sprintf (str, "%.2x", (unsigned int)0x01)
    sprintf (str, "%2.2x", (unsigned int)0x01)
    There is a question. Why in Embarcadero® C++Builder 10.1 Berlin transformation of types isn't required.

Children