2017-04-11 47 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

感谢它的工作,真的帮助我。 –