We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi i am having a problem with the sprintf function. i don't know what i am doing wrong. i created a function where i use sprintf to separate the digits of a decimal number, and the first time that i called the function it works fine. The second time the sprintf starts when the first time left, and so on. The variable looks something like this the first time: "0123" and the second time: "0123123" I don't know if i have to reset a pointer (or how to do it) so everytime i call the function it starts at the beginning of the array. the code looks something like that:
void send_code (void) { int n; if (oper_code < 1000){ n = sprintf (code_char, "%d", 0); } n += sprintf (code_char+n, "%d", oper_code); . . . } void main (void) { . . . while (1) { send_code(); } }
If your objective is just to left pad the value with zeroes in a field width of four you can get rid of n, p and the if test and use this instead: sprintf (code_char, "%04d", oper_code);