[英]What is causing my output to be so messy?
我目前正在從Android設備讀取傳感器值,並將其流式傳輸到已連接的PC客戶端。
bzero(buffer,256);
//fgets(buffer,255,stdin);
n = write(sockfd,buffer,strlen(buffer));
if (n < 0)
error("ERROR writing to socket");
while(1){
bzero(buffer,256);
n = read(sockfd,buffer,255);
if (n < 0)
error("ERROR reading from socket");
sleep(1);
printf("%s\n",buffer);
}
close(sockfd);
return 0;}
用於輸出數據的PC客戶端的代碼。
while(!stopFlag){
try {
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(s.getOutputStream())), true);
// out.printf(String.valueOf(accel[0]),accel[1],accel[2]);
out.printf(String.valueOf(d.format(accel[0]))+" "+String.valueOf(d.format(accel[1]))+" "+String.valueOf(d.format(accel[2])) + " Accelerometer " + "\n");
out.printf(String.valueOf(d.format(gyro[0]))+" "+String.valueOf(d.format(gyro[1]))+" "+String.valueOf(d.format(gyro[2]))+ " Gyroscope " + "\n");
out.printf(String.valueOf(d.format(magnet[0]))+" "+String.valueOf(d.format(magnet[1]))+" "+String.valueOf(d.format(magnet[2]))+" Magnetometer "+ "\n\n");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
正在發送傳感器值的代碼段。
我將如何解決此問題,或者有什么更干凈的方法來輸出數據? [解決了]
另外,我如何將輸出寫為csv格式的文件。 我環顧四周,但仍然不太確定如何讀取傳感器值,因為我有一個4x4的值,即上圖所示的傳感器值和傳感器名稱。
如果我要在客戶端添加延遲/睡眠功能,則在關閉應用程序側的套接字后,客戶端仍會顯示傳入的值,為什么呢?
任何幫助或建議,將不勝感激! 問候
羅傑為我提供了正確的答案,盡管不確定他現在在哪里。
刪除\\ n(新行)可解決此問題,數據現在不會流到下一行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.