C++ 在C+中定义std::string+;没有转义字符

C++ 在C+中定义std::string+;没有转义字符,c++,string,escaping,C++,String,Escaping,将未转义字符序列输入到std::string,最简单的方法是什么 而不是 std::string st = "C:\\program files\\myFile.txt"; 类似:(由于转义字符而无法正常工作) 您可以使用C++11执行此操作: 对于文件名,只需使用(向前?向后?)另一个方向的斜杠。它也适用于Windows: std::string st = "C:/program files/myFile.txt"; 你的建筑怎么样?你能将内容存储在一个.txt文件中,并添加一个Make

将未转义字符序列输入到
std::string
,最简单的方法是什么

而不是

 std::string st = "C:\\program files\\myFile.txt";
类似:(由于转义字符而无法正常工作)

您可以使用C++11执行此操作:

对于文件名,只需使用(向前?向后?)另一个方向的斜杠。它也适用于Windows:

std::string st = "C:/program files/myFile.txt";

你的建筑怎么样?你能将内容存储在一个
.txt
文件中,并添加一个
Makefile
规则,将其转换为一个
h
文件吗?@MikeSamuel,我正在使用Visual Studio。投票人能解释问题的错误吗?@chris:谢谢,但你的努力白费了。我会再次忘记,因为我的大脑没有考虑到足够重要的记忆。这并不总是与一些文件系统驱动程序,或者如果路径比Max路径长,扩展路径前缀是used@Asu:你为什么这么说?对不起,我弄错了。我把
/
和````混在一起了。很抱歉,这不是OP要求的。太棒了。LR表示宽字符。一开始语法让我很困惑,因为字符串开头和结尾的分隔符是双字符序列。。。“(…然后…”Ew这种语法很恶心。谁的好主意是把()加引号?而另一种版本,R“delimiter()delimiter”,则更糟糕。
std::string st = R"(C:\program files\myFile.txt)";
std::string st = "C:/program files/myFile.txt";