我使用 C++ 处理许多文件,我必须在源代码中编写文件名,如下所示:
"F:\\somepath\\subpath\\myfile"
,我想知道是否有任何方法可以摆脱在字符串文字上下文中键入“\\”来获取字符 '\' ,即,我希望我可以只写"F:\somepath\subpath\myfile"
一个无聊的。
问问题
6161 次
3 回答
17
解决方案:
使用 C++11 字符串文字:
R"(F:\somepath\subpath\myfile)"
使用带有正斜杠的 boost::path:它们将验证您的路径并引发问题异常。
boost::filesystem::path p = "f:/somepath/subpath"; p /= "myfile";
只需使用正斜杠;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
两个明显的选择:
- Windows 理解正斜杠(或者更确切地说,它将它们转换为反斜杠);改用那些。
C++11 具有原始字符串文字。它们里面的东西不需要逃逸。
R"(F:\somepath\subpath\myfile)"
于 2013-06-18T09:08:01.030 回答