C ++避免使用反斜杠和双引号转义

时间:2016-01-30 07:03:36

标签: c++

我想知道如何避免反斜杠和双引号转义它的表达式。使用R()是否可以使用LPCSTR?

反斜杠:

WriteKey("\"); //this will escaped accidentally.
WriteKey("/"); //this wouldn't

与双引号相同:

WriteKey("""); //this would escape too
WriteKey("'"); //but not this

注意:WriteKey()对于它的参数

需要LPCSTR

1 个答案:

答案 0 :(得分:1)

  

使用R()是否可以使用LPCSTR?

是。原始字符串文字生成的字符串与非原始字符串的类型相同。

以下行将具有相同内容的字符串传递给WriteKey

WriteKey("\\");   // manual escaping
WriteKey(R"(\)"); // raw string literal

正如您所看到的,使用非常短的字符串的原始字符串文字并没有多大意义。

从VS2013开始,Visual Studio支持原始字符串文字。