0

TCP 経由でセンサーからデータを受信して​​いますが、出力は次のようになります。

倍の6倍の値です。最初の 3 つだけが必要です。X、Y、Z 方向の力で合力を取得します。「センサーストリームの double の文字列表現」を受け取っていると言われ、浮動小数点数を表す文字列を取り、double を返す atof 関数を使用する必要があると言われました。

それで、問題はです。次のコードを使用して、センサーからデータを受信して​​います

char recvbuf[DEFAULT_BUFFER_LENGTH];
int iResult = recv(ConnectSocket, recvbuf, DEFAULT_BUFFER_LENGTH, 0);

double n;
n = atof (recvbuf);

出力は常に間違っています。0.1414 ではなく 30000 という間違ったデータを取得するか、0.15 を 0 として読み取ります。3 つのデータすべてを取得する方法についてのヒントはありますか? 私は BUFFER=50 を使用します。これ以上読む必要がなく、センサーからの文字列の合計の長さもわかりません。

4

2 に答える 2