9

我使用 C++ 处理许多文件,我必须在源代码中编写文件名,如下所示: "F:\\somepath\\subpath\\myfile",我想知道是否有任何方法可以摆脱在字符串文字上下文中键入“\\”来获取字符 '\' ,即,我希望我可以只写"F:\somepath\subpath\myfile"一个无聊的。

4

3 回答 3

17

解决方案:

  1. 使用 C++11 字符串文字:R"(F:\somepath\subpath\myfile)"

  2. 使用带有正斜杠的 boost::path:它们将验证您的路径并引发问题异常。

    boost::filesystem::path p = "f:/somepath/subpath";
    p /= "myfile";
    
  3. 只需使用正斜杠;Windows 应该理解它们。

于 2013-06-18T09:11:20.047 回答
5

如果您有 C++11,则可以使用原始字符串文字:

std::string s = R"F:\somepath\subpath\myfile";

另一方面,您可以只对文件系统路径使用正斜杠:

std::string s = "F:/somepath/subpath/myfile";
于 2013-06-18T09:07:36.687 回答
5

两个明显的选择:

  1. Windows 理解正斜杠(或者更确切地说,它将它们转换为反斜杠);改用那些。
  2. C++11 具有原始字符串文字。它们里面的东西不需要逃逸。

    R"(F:\somepath\subpath\myfile)"
    
于 2013-06-18T09:08:01.030 回答