boost::filesystem::path and fopen()

陌路散爱 提交于 2019-12-05 16:05:32

问题


I get error when I try to do this:

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

I get:

argument of type "const boost::filesystem::path::value_type *" is incompatible with parameter of type "const char *"

Could anyone tell me what I'm doing wrong? Thanks


回答1:


If you're under Windows, that value_type is wchar_t, and will fail in the conversion for fopen (that needs a char*). As per the documentation, it seems you have to use the string() method to obtain a standard string with a default code conversor (wchar_t -> char):

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


来源:https://stackoverflow.com/questions/11352641/boostfilesystempath-and-fopen

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!