2017-04-11 35 views
-1

即時通訊在C中編寫代碼讀取文本文件,然後輸出一個新的文本文件,但即時通訊作爲字符串閱讀我的數據,然後我需要找到一個字符。有沒有辦法做到這一點?在'緩衝區'內,我需要找到字符'R'並在獲得Int值後。我將如何去做呢?由於這是我到目前爲止的代碼:在fgets中使用fgetc?

const char ch = 'R'; 
char *ret; 


if(strcmp(data_in,"G3")==0) 
    { 
     if(fgets(buffer,60,p)!= NULL) 
     { 


      size_t len = strlen(buffer); 
      if (len > 0 && buffer[len-1] == '\n') 
      { 
       buffer[--len] = '\0'; 
      } 

      ret= strchr(buffer, ch); 
      fprintf(o,"CC X0.0 Y%s.0\n",ret); 
      fprintf(o,"C%s DR+ R0 M\n",buffer); 
     } 
    } 
+0

[爲什麼'而(!FEOF(P))'是錯誤的(http://stackoverflow.com/questions/5431941/while-feof-file-is-always-wrong) – Barmar

+0

使用和strchr' ()'在字符串中查找字符。 – Barmar

+0

我的代碼中沒有看到任何內容正在嘗試查找某個字符,除非您正在討論緩衝區末尾的換行檢查。你的具體問題是什麼? – Barmar

回答

0

使用sscanfR後讀整數。

ret = strchr(buffer, ch); 
if (ret) { 
    int num; 
    sscanf(ret+1, "%d", &num); 
    fprintf(o, "CC X0.0 Y%d.0\n", num); 
} 
fprintf(o, "C%s DR+ R0 M\n", buffer); 
+0

感謝它的工作,真的幫助我。 –