strptime не дает детерминированных результатов

У меня есть следующая функция, которая читает файлы CSV в класс.

int Class::loadFromFile(std::string filename){

/** read file **/
std::string line;
std::ifstream file (filename);

if( !(file.is_open()) ){
FILE_LOG(logWARNING) << "File " << filename << " could not be opened.";
}

/** fields: datetime, value **/
while( getline(file,line) )
{
std::vector<std::string> sline = split(line,',');

// sline[0] is timestamp
time_t timestamp;
std::tm _timestamp;
strptime(sline[0].c_str(),"%Y-%m-%d%n%T",&_timestamp);
timestamp = mktime(&_timestamp);

// sline[1] is value
unsigned int value = stoi(sline[1]);

std::cout << sline[0].c_str() << std::endl; // is always the same
std::cout << timestamp << std::endl; // sometimes differs by 1 hour ONLY FOR THE FIRST LINE

this->add(timestamp,value);
}

return 0;

}

Как указано в коде, вывод

std::cout << timestamp << std::endl;

самая первая строка в моем CSV-файле не всегда одинакова при каждом отдельном вызове моей программы, но иногда она отличается ровно на один час.

Кажется странным, что это происходит только для первой строки CSV-файла, и все остальные строки интерпретируются точно так же каждый раз, когда я вызываю программу.

У кого-нибудь есть идея, почему это происходит?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]