gpt4 book ai didi

c++ - 如何从 std::filesystem::path 中删除引号

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:57 25 4
gpt4 key购买 nike

如果我使用像 absolute() 这样的函数,我总是得到一个包含引号的路径。

在文件系统函数中有没有办法删除这个引号,使其能够与例如一起使用std::ifstream?

  fs::path p2 { "./test/hallo.txt" };
std::cout << "absolte to file : " << fs::absolute(p2) << std::endl;

返回:

"/home/bla/blub/./test/hallo.txt"

我需要

/home/bla/blub/./test/hallo.txt

相反。

手动做是没有问题的,但是我想问下文件系统lib里面有没有方法。

最佳答案

std::operator << (std::filesystem::path const &) 规定如下:

Performs stream input or output on the path p. std::quoted is used so that spaces do not cause truncation when later read by stream input operator.

所以这是流式传输路径时的预期行为。你需要的是 path::string() :

Returns the internal pathname in native pathname format, converted to specific string type.

std::cout << "absolte to file : " << absolute(p2).string() << std::endl;
// ^^^^^^^^^

我还删除了 fs::absolute可以通过 ADL 找到。

关于c++ - 如何从 std::filesystem::path 中删除引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43659629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com