I have this code that creates a std::filesystem::path
from another existing path:
std::filesystem::path outfilename = PathToNewVersionTXT;
Is it possible to convert outfilename
to a const char*
type? As that is what is required later down in the code.
CodePudding user response:
From the c reference, you can use
outfilename.c_str()
to extract the path name as a character string.
CodePudding user response:
It looks like you just need to use std::filesystem::path::c_str
to get a pointer to the w_char_t
(windows) or char
(Linux).
You can’t change it to const char
Because that’s just a single character and you want multiple characters to make up a pathname. You really want a const char*
which is what this function returns (Linux).
CodePudding user response:
Use the path::string()
or path::u8string()
method to get the path as a std::string
, and then you can use the string::c_str()
method:
std::filesystem::path outfilename = PathToNewVersionTXT;
std::string outfilename_str = outfilename.string(); // or outfilename.u8string()
const char *outfilename_ptr = outfilename_str.c_str();
CodePudding user response:
Use the c_str()
function for this. E.g. const char* str = path.c_str();
.