我想解析一个由4位年份和一年内的星期编号组成的字符串。我已经按照升压日期/时间IO教程,制作这样一个测试例子:如何使用boost :: date_time解析每周数据?
std::string week_format = "%Y-W%W";
boost::date_time::date_input_facet<boost::gregorian::date, char> week_facet = boost::date_time::date_input_facet<boost::gregorian::date, char>(week_format);
std::stringstream input_ss;
input_ss.imbue(locale(input_ss.getloc(), &week_facet));
std::string input_week = "2004-W34";
input_ss.str(input_week);
boost::gregorian::date input_date;
input_ss >> input_date;
不幸的是,input_date
只是打印为“2004-01-01”,这意味着它只是解析的一年。我究竟做错了什么?输入时是否有%W
? (该文档不会将其标记为这样)。
啊,我只是在调用语言环境时做了取消引用。但是你的表单更接近文档中的例子。我猜他们在评论中列出了功能,然后从未执行过。 – UltraNurd
术语说明:当你使用'&'你是“接收地址”,并且当你使用'*'时,你正在执行一个解除引用。与在栈上声明某个东西并传递地址(与使用动态分配)相比,一个很大的区别是当你传递指针的人期望他们可以“删除”它......这似乎是其中的一种情况。 – HostileFork