当我尝试这样做时出现错误:
path p = "somepath"; FILE* file = fopen(p.c_str(), "r");
我得到:
types为“const boost :: filesystem :: path :: value_type *”的参数与“const char *”types的参数不兼容
谁能告诉我我做错了什么? 谢谢
如果你在Windows下,那value_type
是wchar_t
,并且在转换fopen
(需要一个char*
)时会失败。 根据文档,似乎你必须使用string()
方法来获得一个带有默认代码转换器( wchar_t
– > char
)的标准字符串:
FILE* file = fopen(p.string().c_str(), "r");