2017-04-11 3 views
-1

Ich schreibe Code in C, der eine Textdatei liest und dann eine neue Textdatei ausgibt, aber ich lese meine Daten als String ein und muss dann ein Zeichen finden. Gibt es einen Weg, dies zu tun? Innerhalb des "Puffers" muss ich das Zeichen "R" finden und den Int-Wert nach ist nehmen. Wie werde ich das machen? Dank dieses ist mein Code so weit:mit fgetc in einem 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

[warum 'while (! Feof (p))' ist falsch] (http://stackoverflow.com/questions/5431941/while-feof-file-is-always-wrong) – Barmar

+0

Verwenden 'strchr() 'um ein Zeichen in der Zeichenfolge zu finden. – Barmar

+0

Ich sehe nichts in Ihrem Code, das versucht, ein Zeichen zu finden, es sei denn, Sie sprechen über die Suche nach Zeilenumbrüchen am Ende des Puffers. Was ist dein spezifisches Problem? – Barmar

Antwort

0

Verwenden sscanf die ganze Zahl nach dem R zu lesen.

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

Danke, es hat mir wirklich geholfen. –