簡體   English   中英

是什么導致我的輸出如此混亂?

[英]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();
    }
}

正在發送傳感器值的代碼段。

  1. 我將如何解決此問題,或者有什么更干凈的方法來輸出數據? [解決了]

  2. 另外,我如何將輸出寫為csv格式的文件。 我環顧四周,但仍然不太確定如何讀取傳感器值,因為我有一個4x4的值,即上圖所示的傳感器值和傳感器名稱。

  3. 如果我要在客戶端添加延遲/睡眠功能,則在關閉應用程序側的套接字后,客戶端仍會顯示傳入的值,為什么呢?

任何幫助或建議,將不勝感激! 問候

羅傑為我提供了正確的答案,盡管不確定他現在在哪里。

刪除\\ n(新行)可解決此問題,數據現在不會流到下一行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM