c++ - boost::filesystem::path 只给出第一个字符

标签 c++ windows boost

我将一些可执行文件的路径存储在 boost::filesystem::path 中。 当我尝试将它与 create_directory 等标准 boost 功能一起使用时,我发现没有任何效果。 当我打印存储在 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 上,我有我描述的行为。问题的根源是什么?

附言。 boost库版本为1.70

最佳答案

为了获得 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();

关于c++ - boost::filesystem::path 只给出第一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56098133/

相关文章:

python - 在 Mac 上构建 Boost 和 Exempi

c++ - 断开连接后重新连接 boost beast (asio) websocket 和 http 连接时出错

c++ - 使用 libpcl_surface 在 boost::math::lanczos 中调试段错误

c++ - malloc 未分配指定内存(64 位)

c++ - 如何处理单例?

windows - PowerShell "You must provide a value expression following the ' 调用WinSCP.com时出现/' operator"错误

Windows设备: get "location" string for a given IMFActivate* of a UVC webcam

c++ - 命令行参数是一些字符串吗?

c++ - 如何检查文本文件中的特定行是否以特定单词开头

php - 我如何从网络 Web 服务器在网络客户端上创建文件