Hello! I am trying to use sprintf, but get no result (C51, version 5.20).
char xdata command [80], i=100; strcpy (command, "Hello!"); // now command contains "Hello!" sprintf (command, "Test %d", i); // command has not changed
Why would sprintf not work? It's working. If you want to see the value 100 ( 64h 'd' ) you need to change the format string argument, %d means int, if you put %c it will work as expected because you are using a char data type.
char xdata command [80], i=100; sprintf (command, "Test %c", i); // command has changed
With ANSI integer promotion disabled (typical) you must cast the char to an int.
char total = 100; sprintf(buf, "Total is %d\n", (int) total);
View all questions in Keil forum