Beste Weg, um zu Lesen analysieren von Daten aus text-Datei in C?

Ich bin an einer Aufgabe arbeiten, beschäftigt sich mit Lesen von Daten aus einer text-Datei, und analysieren, dass die Daten in verschiedenen arrays. Zum Beispiel, einen Teil meiner text-Datei sieht wie folgt aus:

arbrick  pts/26       141.219.210.189  Thu Mar 29 11:23 - 11:24  (00:00)    
rjmcnama pts/27       141.219.205.107  Thu Mar 29 11:02   still logged in   
ajhoekst pts/26       99.156.215.40    Thu Mar 29 10:59 - 11:08  (00:08)    
eacarter pts/31       141.219.162.145  Thu Mar 29 10:50 - 10:51  (00:00)    
kmcolema pts/31       141.219.214.128  Thu Mar 29 09:44 - 09:47  (00:03) 

Muss ich parse die Daten in folgende Felder: Benutzer-id, terminal, ip-Adresse, und event-Zeiten. Wie kann ich dies in Anbetracht, dass gibt es nicht eine gleichbleibende Menge an Leerraum zwischen den Spalten ist?

BEARBEITEN:
Ich habe versucht, mit dem Vorschlag, dass Thiruvalluvar zur Verfügung gestellt, aber ich konnte einfach nicht bekommen es funktioniert. Allerdings wollte ich wechseln zu sscanf und das funktioniert ganz gut fast...

while(!feof(myfile)) {
        fgets(buffer, 256, myfile);
        sscanf(buffer, "%s %s %s %s", user_id[i], terminal_id[i], ip_addr[i], events[i]);
    } /*End while not EOF*/

Was funktioniert, ist die user_id, terminal_id, und ip_addr arrays. Jedoch werden die Ereignisse array ist nicht perfekt arbeitet noch. Seit den Ereignissen array ist ein string mit Leerzeichen, wie kann ich sscanf, fügen Sie den Rest der Puffer zu den Veranstaltungen array?

Nachschlagen strtok_r.

InformationsquelleAutor kubiej21 | 2012-03-29

Schreibe einen Kommentar