所以我为一个位置做了一个课程,在那里我存储它的coordonates和它的时间,在utc。我重载了>>像这样的运营商
friend ifstream& operator >>(ifstream& in, loc_list& l)
{
char bf[40];
in >> bf;
l.setID(bf);
long t=0;
in >> l.utc;
//l.setTime(t);
double point;
in >> point;
l.p.setX(point);
in >> point;
l.p.setY(point);
in >> l.speed;
return in;
}
和<<像这样的运算符:
friend ostream& operator <<(ostream& out,const loc_list &l)
{
out << l.id << endl;
out << put_time(gmtime(&l.utc),"%c %Z" )<< endl;
//out << l.utc << endl;
out << l.p.getX() << endl;
out << l.p.getY() << endl;
out << l.speed;
return out;
}
然而,&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;运算符仅在使用构造函数创建对象时才起作用。当我用cin&gt;&gt;阅读它时它打破了。 我调试了程序,但对象包含正确的数据 print from debugger
所以,有什么想法吗?
答案 0 :(得分:0)
put_time
的对应方为get_time
。
我建议使用:
std::tm tm
in >> get_time(&tm, "%c %Z");
然后从l.utc
更新tm
。
l.utc = mktime(&tm);