Problem with sprintf function, last parameters are wrong when written

Posted by Apoc on Stack Overflow See other posts from Stack Overflow or by Apoc
Published on 2010-02-19T21:15:50Z Indexed on 2010/03/22 0:41 UTC
Read the original article Hit count: 235

Filed under:
|
|

So I use sprintf

sprintf(buffer,"%f|%f|%f|%f|%f|%f|%d|%f|%d", x, y, z, u, v, w, nID,dDistance, nConfig)

But when I print the buffer I get the 2 last parameters wrong, they are lets suppose to be 35.0000 and 0 and in the string they are 0.00000 and 10332430 and my buffer is long enough and all the other parameters are good in the string

Any idea? Is there a length limit to sprintf or something^

I checked the types of all the numbers and they are right, but what seems to be the problem is the dDistance. When I remove it from the sprint, the nConfig gets the right value in the string, but when I remove nConfig, dDistance still doesn't get the right value. I checked and dDistance is a double. Any idea?

Since people don't seem to believe me I did this :

char test[255]={0};
int test1 = 2;
double test2=35.00;
int test3 = 0;

sprintf(test,"%d|%f|%d",test1,test2,test3);

and I get this in my string:

2|0.000000|1078034432

© Stack Overflow or respective owner

Related posts about c

    Related posts about c++