string mittels strtok zerlegen und weiterverarbeiten

Rubidu

Grünschnabel
Hallo Forum,

ich komme an einem Punkt einfach nicht weiter. Ich habe eine Textdatei, in der IDs,Vornamen und Nachnamen stehen.
Ich habe es geschafft die Zeilen zeilenweise in einen String einzulesen. Nun würde ich diesen String gerne teilen und die Teilstrings gerne in 3 Arrays speichern (array ID,array vorname,array nachname). Jemand eine Idee wie ich das machen könnte?

Bisher sieht es so aus:
C++:
int zaehler=-1,i=0;
string s;
char delimiter[] = ",";
char *token;
char *num;

ifstream namendatei; // liegt im verzeichnis
namendatei.open("namen.txt",ios_base::in); //oeffne textdatei mit namen

while(!namendatei.eof()) //solange noch daten vorliegen
{
getline(namendatei,s); //liess  eine zeile ein
token = strtok( &s[0],delimiter );

while( token != NULL )
{
   //cout << token;
  token = strtok( NULL,delimiter);
  num=token;
  cout << num << endl;
  i++;
}
}
danke schonmal!!
 
Zuletzt bearbeitet von einem Moderator:
Hi.

[verwende Code-Tags!]

Bei einem Trennzeichen, vergiss strtok und nimm einfach getline und einen istringstream.

Du solltest nicht .eof verwenden. Das funktioniert nicht so.

Und du solltest prüfen ob die Datei überhaupt geöffnet werden konnte.

C++:
if (namendatei.is_open()) {

  while (getline(namendatei, s)) {
    ...
  }
}
 
Zurück