2017-04-11 1 views
-1

메신저에서 C에서 텍스트 파일을 읽은 다음 새로운 텍스트 파일을 출력하지만 im을 문자열로 읽으면 문자를 찾아야합니다. 이것을 할 수있는 방법이 있습니까? '버퍼'내에서 'R'문자를 찾아서 Int 값을 가져와야합니다. 내가 그 일을 어떻게 할 것인가 ??fgetsc를 fgets 내에서 사용 하시겠습니까?

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

고마워, 정말 나를 도와 줬어. –