12

尝试执行此操作时出现错误:

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

我得到:

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

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

4

1 回答 1

13

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

FILE* file = fopen(p.string().c_str(), "r");
于 2012-07-05T21:25:18.973 回答