C ++ strtok - wielokrotne użycie z większą ilością buforów danych

Mam niewielkie problemy z używaniemstrtok() funkcjonować. Analizuję dwa pliki. Wczytuję pliki do pierwszego plikubuffer. Ten plik zawiera nazwę drugiego pliku, który muszę załadować. Oba pliki są odczytywane wiersz po wierszu. Mój kod wygląda tak:

char second_file_name[128] = { "" };
char * line = strtok( buffer, "\n" );
while( line != NULL )
{
  if ( line[0] = 'f' )
  {
    sscanf( line, "%*s %s", &second_file_name );
    LoadSecondFile( second_file_name );
  }
  // processing other lines, not relevant for question
  line = strtok( NULL, "\n" );
}

Podczas, gdyLoadSecondFile(...) funkcja działa w ten sam sposób, a więc:

char * line = strtok( buffer, "\n" );
while( line != NULL )
{
  // process file data
  line = strtok( NULL, "\n" );
}

Na czym polega mój problem po wywołaniuLoadSecondFile(...) funkcja,strtok() wskaźnik używany do parsowania pierwszego pliku zostaje „pomieszany”. Zamiast podawać mi wiersz następujący po nazwie drugiego pliku, nie daje mi to nic - rozumiem jako „kompletny nonsens”. Czy mam rację, że jest to spowodowane przezstrtok() wskaźnik jest współdzielony w programie, nie tylko w funkcji? Jeśli tak, jak mogę „wykonać kopię zapasową” wskaźnikastrtok() używany do parsowania pierwszego pliku przed użyciem go do parsowania drugiego pliku?

Dzięki za każdą radę. Twoje zdrowie.

questionAnswers(3)

yourAnswerToTheQuestion