所以我使用sprintf
sprintf(buffer, "%f|%f|%f|%f|%f|%f|%d|%f|%d", x, y, z, u, v, w, nID, dDistance, nConfig);
Run Code Online (Sandbox Code Playgroud)
但是当我打印缓冲区时,我得到的最后两个参数错误,它们假设为35.0000和0,并且在字符串中它们是0.00000和10332430并且我的缓冲区足够长并且所有其他参数在字符串中都很好
任何的想法?是否有sprintf的长度限制?
我检查了所有数字的类型,它们是正确的,但似乎问题是dDistance.当我从sprint中删除它时,nConfig在字符串中获得正确的值,但是当我删除nConfig时,dDistance仍然没有得到正确的值.我查了一下,dDistance是双倍的.任何的想法?
由于人们似乎不相信我,我这样做:
char test[255]={0};
int test1 = 2;
double test2=35.00;
int test3 = 0;
sprintf(test,"%d|%f|%d",test1,test2,test3);
Run Code Online (Sandbox Code Playgroud)
我在我的字符串中得到这个:
2|0.000000|1078034432
Run Code Online (Sandbox Code Playgroud)