我尝试这样做时出错:
path p = "somepath";
FILE* file = fopen(p.c_str(), "r");
我明白了:
类型“const boost :: filesystem :: path :: value_type *”的参数与“const char *”类型的参数不兼容
有谁能告诉我我做错了什么?感谢
答案 0 :(得分:13)
如果您在Windows下,value_type
为wchar_t
,则fopen
转换失败(需要char*
)。根据文档,您似乎必须使用string()
方法获取具有默认代码转换器的标准字符串(wchar_t
- > char
):
FILE* file = fopen(p.string().c_str(), "r");