【发布时间】:2012-10-09 21:44:13
【问题描述】:
我想写一个函数:
inline char separator()
{
/* SOMETHING */
}
在标准 C/C++/C++11 中返回系统的文件分隔符? (我的意思是斜杠或反斜杠,具体取决于系统)。有没有办法做到这一点?
【问题讨论】:
-
我知道它说的是“标准 C++”,但如果你不介意使用 boost...stackoverflow.com/questions/8384477/…
-
Boost 是用标准 C++ 编写的,所以应该可以接受 - 尤其是 boost.org/doc/libs/1_51_0/libs/filesystem/doc/…
-
这有多重要? Windows API 都接受斜杠和反斜杠作为分隔符。
cmd.exe很挑剔;它使用斜杠表示选项,因此在路径中需要反斜杠。为了向用户展示,使用反斜杠可能会更好,但是对于使用斜杠的 URL,人们可能不会像以前那样沉迷于此。 -
@Mark "Boost 是用标准 C++ 编写的,所以应该可以接受" - 好吧,Qt 也是如此,所以只需使用
QDir::separator().toAscii()。 -
来自MSDN:所有正斜杠 (
/) 都转换为标准的 Windows 分隔符,即反斜杠 (\)。如果它们存在,则前两个斜线后面的一系列斜线将折叠成一个斜线。
标签: c++ c file c++11 filesystems