我想知道如何避免反斜杠和双引号转义它的表达式。使用 R()
可以与 LPCSTR 一起使用吗?
反斜杠:
WriteKey("\"); //this will escaped accidentally.
WriteKey("/"); //this wouldn't
与双引号相同:
WriteKey("""); //this would escape too
WriteKey("'"); //but not this
注意:WriteKey()
需要 LPCSTR
作为参数
最佳答案
Would using
R()
work with LPCSTR?
是的。原始字符串文字生成的字符串与非原始字符串具有相同类型。
以下行将具有相同内容的字符串传递给WriteKey
。
WriteKey("\\"); // manual escaping
WriteKey(R"(\)"); // raw string literal
如您所见,将原始字符串字面量用于非常短的字符串没有多大意义。
从 VS2013 开始,Visual Studio 支持原始字符串文字。
关于C++避免反斜杠和双引号转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35099064/