我有以下功能,它将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文件的第一行,而且每次调用程序时所有其他行的解释都完全相同。
有人知道为什么会这样吗?