boost :: filesystem :: path дает только первый символ - PullRequest
0 голосов
/ 12 мая 2019

Я храню путь к некоторому исполняемому файлу в boost :: filesystem :: path.Когда я пытаюсь использовать его со стандартными функциями наддува, такими как create_directory, я вижу, что ничего не работает.Когда я печатаю значение, сохраненное в boost :: filesystem :: path, я получаю только первый символ.

const std::string path("c:\\test\\file");
boost::filesystem::path p(path);
printf("%s\n", p.c_str());

Я ожидаю увидеть «c: \ test \ file» в консоли, но получу только «c».

В Linux этот код работает отлично, как и ожидалось.В Windows у меня есть поведение, как я описал.В чем корень проблемы?

пс.версия буст-библиотеки 1.70

1 Ответ

1 голос
/ 12 мая 2019

для получения std :: string вместо кроссплатформенности std :: wstring, вы можете использовать boost :: fileystem :: path :: string () вместо c_str ():

const std::string path("c:\\test\\file");
boost::filesystem::path p(path);
std::cout << p.string();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...