C++ 将sscanf用于boost日期

C++ 将sscanf用于boost日期,c++,boost-date-time,C++,Boost Date Time,我正在尝试使用sscanf来分离一个具有提升日期的字符串。代码如下: std::sscanf(ss.c_str(),"%ls\t%lf\t%lf",&date1_,&num1_,&num2_); 我得到以下错误: warning: format ‘%ls’ expects type ‘wchar_t*’, but argument 3 has type ‘boost::gregorian::date*’ 谁能给我建议一个解决办法吗。谢谢 不能这样做sscanf是一

我正在尝试使用sscanf来分离一个具有提升日期的字符串。代码如下:

 std::sscanf(ss.c_str(),"%ls\t%lf\t%lf",&date1_,&num1_,&num2_);
我得到以下错误:

 warning: format ‘%ls’ expects type ‘wchar_t*’, but argument 3 has type ‘boost::gregorian::date*’

谁能给我建议一个解决办法吗。谢谢

不能这样做
sscanf
是一个C函数,只能读取基元类型,不能读取类类型

在C++中,用于读写类类型的枪是“流”,输入“代码> <代码>和<代码> <代码>标题。如果您正在使用的Boost库的作者对此类重载
operator
,它们将起作用


如果没有,那么最好的办法是逐个读取日期字段(作为基本类型),然后使用其构造函数创建一个
boost::gregorian::date
对象。

流IO不能使用的具体原因是什么?它就像
istringstream(ss)>>date1>>num1>>num2
@Cubbi一样简单,但不起作用……正如Kos所提到的,它正在寻找重载操作符>>应该可以通过>>序列化,并得到了它……我将尝试一下。