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

标签 c++

我想知道如何避免反斜杠和双引号转义它的表达式。使用 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/

相关文章:

c++ - 只有一个基础虚拟的多路径继承

c++ - 转换失败!管道中带有自定义 exe 的 FFMpeg

c++ - 在 C++ 中访问数组的负索引处的内存不会返回垃圾

c++ - 有没有办法在编译时获取作用域类名?

c++ - 在从全局对象调用的静态库函数中使用 std::vector 时调试断言失败

C++ `std::sort` 在不复制的情况下指向二维数据的指针

c++ - sleep 的意义(0)

c++ - const void (* 函数)

c++ - 数组相关错误 - 无效类型..?

java - 重载 C++ 赋值运算符使其表现得像 Java