如何在c ++中生成OS独立路径

Jan*_*usz 8 c++ filesystems cross-platform

我有一个目标路径和一个文件名作为字符串,我想用c ++连接它们.

有没有办法做到这一点,让程序/编译器在/和\之间为windows或unix系统选择?

Dav*_*ler 7

通常情况下,Boost有一个可以满足您需求的库. 是一个教程.

  • 不,但这不是DOS和Unix文件名之间的唯一区别.实际上,DOS(以及反斜杠)都接受斜杠 - 但不是cmd.exe命令解释器. (3认同)
  • 我真的需要一个“完整的”库来在 / 和 \ 之间进行选择吗? (2认同)

小智 7

如果你想在编译时这样做,你当然可以做类似的事情

#ifdef WIN32
#define OS_SEP '\\'
#else
#define OS_SEP '/'
#endif
Run Code Online (Sandbox Code Playgroud)

或者你可以使用'/'并且在windows上工作正常(除了解析字符串的旧程序并且只能使用'\').如果以这种方式向用户显示它只会看起来很有趣.

  • Windows正好可以使用正斜杠. (2认同)