我通过 TCP 从传感器接收数据,输出如下所示: <-0.040000 , -0.005000 , 0,025000 , 0,990000 , -0,000500 , 0.033000 >
这是6倍的价值。我只需要前三个。X、Y 和 Z 方向的力以获得它们的合力。有人告诉我,我正在接收“双精度的传感器流字符串表示”,并且我应该使用 atof 函数,该函数接受一个表示浮点数的字符串并返回一个双精度。
所以,问题是。我正在使用以下代码从传感器接收数据
char recvbuf[DEFAULT_BUFFER_LENGTH];
int iResult = recv(ConnectSocket, recvbuf, DEFAULT_BUFFER_LENGTH, 0);
double n;
n = atof (recvbuf);
输出总是错误的,要么我得到错误的数据,30000 而不是 0.1414,要么我将 0.15 读为 0。关于如何获取所有 3 个数据的任何提示?我使用 BUFFER=50,因为我不需要阅读更多内容,而且我什至不知道传感器的字符串总共有多长。