boost :: filesystem :: path和fopen()

时间:2012-07-05 21:12:42

标签: c++ windows fopen std boost-filesystem

我尝试这样做时出错:

path p = "somepath";
FILE* file = fopen(p.c_str(), "r");

我明白了:

  

类型“const boost :: filesystem :: path :: value_type *”的参数与“const char *”类型的参数不兼容

有谁能告诉我我做错了什么?感谢

1 个答案:

答案 0 :(得分:13)

如果您在Windows下,value_typewchar_t,则fopen转换失败(需要char*)。根据文档,您似乎必须使用string()方法获取具有默认代码转换器的标准字符串(wchar_t - > char):

FILE* file = fopen(p.string().c_str(), "r");