c++ - boost::filesystem 添加引号?

标签 c++ boost boost-filesystem

当使用 boost_filesystem 时,Boost 不断地为文件名添加引号。

foo.cpp:

#include <iostream>
#include <boost/filesystem.hpp>

int main( int argc, char * argv[] )
{
    std::cout << argv[0] << std::endl;
    boost::filesystem::path p( argv[0] );
    std::cout << p << std::endl;
    std::cout << p.filename() << std::endl;
    return 0;
}

编译:

g++ foo.cpp -o foo -lboost_filesystem -lboost_system

输出:

./foo
"./foo"
"foo"

这有点出乎我的意料,而且对我来说很不方便。这真的是故意的,还是我的 Boost (1.46.1) 版本稍旧一些?有什么方法可以避免添加它们?

我仔细阅读了文档,但除了教程没有在示例输出中显示这些引号外,我没有受到启发。

最佳答案

这实际上是一个bug在 1.47.0 版的 Boost 框架上提交。

建议的解决方法是:

std::cout << path("/foo/bar.txt").filename().string()

关于c++ - boost::filesystem 添加引号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15426973/

相关文章:

c++ - 如何为具有多个模块(包括单元测试等)的项目设置 cmake

c++ - boost::container 是否支持 C++11 初始化列表?

c++ - BOOST_FILESYSTEM_VERSION 2 path.native_file_string() 的 BOOST_FILESYSTEM_VERSION 3 模拟是什么?

c++ - 函数不断返回相同的值

c++ - 为什么在 C++ 中使用流?

在 map 上使用 lambda 时出现 C++11 编译错误

c++ - 使用 c++/boost::regex 提取 HTML 文件的特定部分

c++ - boost::filesystem v3 - 路径的正确大小写

c++ - Const std::filesystem::path 引用常量不受尊重,这是我做错的吗?

c++ - QODBCResult::exec:无法执行语句:“[Microsoft][ODBC SQL Server Driver]COUNT 字段不正确或语法错误