У меня есть следующая функция, которая читает файлы 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-файла, и все остальные строки интерпретируются точно так же каждый раз, когда я вызываю программу.
У кого-нибудь есть идея, почему это происходит?
Задача ещё не решена.
Других решений пока нет …