2017-04-11 7 views
-1

私はテキストファイルを読み込んで新しいテキストファイルを出力するが、文字列としてデータを読み込んでいるので、文字を見つける必要がある。これを行う方法はありますか? 'バッファ'の中で私は文字 'R'を見つけ、Int値を取る必要があります。それについてどうやって行くの?おかげで、これはこれまでのところ私のコードです:fgets内でfgetscを使用していますか?

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

R後に整数を読み取るためにsscanfを使用してください。

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

本当にありがとう、私を助けました。 –

関連する問題