Question

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

Was it helpful?

Solution

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");
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top