如何在c++中禁用转义序列
How to disable the escape sequence in C++
我使用c++来处理很多文件,我必须在源代码中这样写文件名:"F:\somepath\subpath\myfile"
,我想知道是否有任何方法可以摆脱输入"\"来在字符串文本上下文中获得字符"",也就是说,我希望我可以只写"F:somepathsubpathmyfile"
而不是无聊的那个。
解决方案:
-
使用c++ 11字符串字量:
R"(F:somepathsubpathmyfile)"
-
使用boost::path和正斜杠:它们将验证您的路径,并在出现问题时引发异常。
boost::filesystem::path p = "f:/somepath/subpath"; p /= "myfile";
-
使用正斜杠;
两个明显的选择:
- Windows理解正斜杠(或者更确切地说,它将它们转换为反斜杠);
-
c++ 11有原始字符串字面值。里面的内容不需要转义。
R"(F:somepathsubpathmyfile)"
从c++ 11开始,您可以使用原始字符串字面值(更多详细信息请参阅字符串字面值):
std::string s = R"(F:somepathsubpathmyfile)";
另一方面,您可以对文件系统路径使用正斜杠:
std::string s = "F:/somepath/subpath/myfile";
相关文章:
- 如何在C++中用'\'替换''来处理转义序列?
- 是否可以在原始字符串文本中插入转义序列?
- 使用无法适应其相关类型的转义序列
- C++二进制值的转义序列
- 使变量字符串忽略转义序列
- "Delete"的转义序列
- getchar() 避免转义序列
- GCC 编译时出现警告:未知转义序列:"\040"
- C++ 中转义序列的数据类型
- 如何在 QString 中解析转义序列
- "'"转义序列的目的是什么?
- C++ 无法识别的转义序列
- lex 中 OR ( | ) 的转义序列
- 转义序列?在 Qstring 中使用引号
- <<未找到运算符和无法识别的转义序列
- 调用 AINSI 转义序列时避免换行
- cmake 在窗口上生成错误,因为它使用 作为转义序列
- 如何分析具有原始转义序列的字符串
- 十六进制转义序列的最大长度
- 字符混淆中的转义序列