C ++ strtok - многократное использование с большим количеством буферов данных

У меня мало проблем с использованиемstrtok() функция. Я анализирую два файла. Во-первых, я загружаю файл 1 вbuffer, Этот файл содержит имя второго файла, который мне нужно загрузить. Оба файла читаются строка за строкой. Мой код выглядит так:

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" );
}

В то время какLoadSecondFile(...) Функция работает примерно так же, таким образом:

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

В чем моя проблема, после вызоваLoadSecondFile(...) функция,strtok() указатель, используемый для разбора первого файла, становится "испорченным". Вместо того, чтобы давать мне строку, которая следует за именем второго файла, он ничего не дает - понимайте как «полная чушь». Правильно ли я понимаю, что это вызваноstrtok() указатель используется в программе, а не только в функции? Если это так, как я могу «создать резервную копию» указателяstrtok() используется для разбора первого файла перед использованием его для разбора второго файла?

Спасибо за любой совет. Приветствия.

Ответы на вопрос(3)

Ваш ответ на вопрос