2017-02-10 3 views
1

können Sie mir helfen? Ich versuche, eine Zeichenfolge 123;342;543;36.6;calm in einer TXT-Datei zu lesen. Und dann benutze die Funktion atoi() um meine Werte zu vergleichen. Aber die erste möchte ich strtok() verwenden. Ich verstehe nicht, was daran falsch ist, denn ich arbeite nur printf("%s",str);, aber ich kann nicht strtok() richtig verwenden, deshalb bekomme ich mein Ergebnis nicht.lesen Sie aus der Datei und verwenden Sie strtok() in c

Code:

void printInfo() 
{ 
    int i; 
    FILE *out; 
    char str[250]; 
    char sp[10]=";"; 
    char *istr; 
    istr=strtok(str,sp); 

    if ((out =fopen("test.txt","r"))==NULL) 
     printf("Error open, file\n"); 
    else 
    { 
      fgets(str,250,out); 
      printf("%s",str); 
      while (istr != NULL) 
      { 
       printf("%s",istr); 
       istr=strtok(NULL,sp); 
      } 
    } 
    fclose(out); 
} 

Antwort

5

Ihr erster strtok() Anruf an der falschen Stelle. Es muss sein, nachdem die Zeichenfolge str gültigen Inhalt empfangen hat, d. H. Nach fgets().

Dies wäre einfacher, sauberer und sicherer mit sscanf() zu tun.

3
istr=strtok(str,sp); 

aufgerufen werden soll, nachdem Sie die Daten lesen

+0

Ehrlich CC: Sie müssen ein * wenig * detaillierter sein; Deine Grammatik braucht auch Arbeit. – Blacksilver

Verwandte Themen