- 论坛徽章:
- 0
|
- char* msg=new char[150];
- int index=0;
- double a,b,c,d;
- ................
- index+=
- sprintf(msg,"%ud %d ",header.MsgType,header.msgContentLength);//read MSG header
- //reading Camer_Msg content
- index+=sprintf(msg+index,"%lf %lf %lf %lf ",a,b,c,d);
复制代码
在unpack的时候
- index=0;
- index+=sscanf(msg,"%ud %d ",&header.MsgType,&header.msgContentLength);
- index+=sscanf(msg+index,"%lf %lf %lf %lf ",&a,&b,&c,&d);
复制代码
调试中出现的问题是pack转换为字符流的时候是每个数字之间用空格分开,而且是正确的。但是在ssscanf中进行unpack的时候a的值正好是header.msgContentLength的值转换为double的格式,怎么会把这个值读了两次,已经通过index控制了位置了怎么会有错,觉得很奇怪! |
|