C++ C+中是否有干净的续行+;类似于“C”;“文本”;或Python“&引用&引用;“文本”&引用&引用;?

C++ C+中是否有干净的续行+;类似于“C”;“文本”;或Python“&引用&引用;“文本”&引用&引用;?,c++,C++,例如,出于复制/粘贴目的,编写以下内容非常方便: C# 或 蟒蛇: 比: C++ P>是否有任何方式避免C++中的“风格”和C语言或Python风格? 谢谢。C++(以及C)自动连接相邻的字符串文本。不需要使用字符串文本的\。例如,这个 const char *p = "Hello" "World" "!"; 相当于 const char *p = "HelloWorld!"; 在你的情况下,你可以简单地做 "SELECT * FROM ...... " "WHERE X = (

例如,出于复制/粘贴目的,编写以下内容非常方便:

C# 或

蟒蛇: 比:

C++ <> P>是否有任何方式避免C++中的“风格”和C语言或Python风格? 谢谢。

C++(以及C)自动连接相邻的字符串文本。不需要使用字符串文本的
\
。例如,这个

const char *p = "Hello" "World"   
  "!";
相当于

const char *p = "HelloWorld!";
在你的情况下,你可以简单地做

"SELECT * FROM ...... "
"WHERE X = (SELECT Y FROM .....) "
"    AND M IN ('1','2','3')"
结果将与原始版本的
\
相同,即将生成一个连续字符串文本

但这不会在连接的线段之间插入换行符或任何其他额外的空白。如果您需要这样的东西,您必须记住自己做。

C++(以及C)自动连接相邻的字符串文本。不需要使用字符串文本的
\
。例如,这个

const char *p = "Hello" "World"   
  "!";
相当于

const char *p = "HelloWorld!";
在你的情况下,你可以简单地做

"SELECT * FROM ...... "
"WHERE X = (SELECT Y FROM .....) "
"    AND M IN ('1','2','3')"
结果将与原始版本的
\
相同,即将生成一个连续字符串文本


但这不会在连接的线段之间插入换行符或任何其他额外的空白。如果你需要这样的东西,你必须记得自己做。

我认为C++11允许使用原始字符串文本换行,例如:

const char *query = R"(SELECT * FROM ...... 
                       WHERE X = (SELECT Y FROM .....) 
                       AND M IN ('1','2','3'))";
源中的每个换行符都应在执行字符串文本中产生一个换行符。原始字符串文字通常采用
R“(…)”
的形式。对于GCC,它至少需要4.5版,对于clang++,它需要3.0版。或者,您可以使用自定义分隔符更容易地消除字符串结尾的歧义:

const char *query = R"XXXX(SELECT * FROM ...... 
                       WHERE X = (SELECT Y FROM .....) 
                       AND M IN ('1','2','3'))XXXX";

我认为C++11允许在原始字符串文本中使用换行符,例如:

const char *query = R"(SELECT * FROM ...... 
                       WHERE X = (SELECT Y FROM .....) 
                       AND M IN ('1','2','3'))";
源中的每个换行符都应在执行字符串文本中产生一个换行符。原始字符串文字通常采用
R“(…)”
的形式。对于GCC,它至少需要4.5版,对于clang++,它需要3.0版。或者,您可以使用自定义分隔符更容易地消除字符串结尾的歧义:

const char *query = R"XXXX(SELECT * FROM ...... 
                       WHERE X = (SELECT Y FROM .....) 
                       AND M IN ('1','2','3'))XXXX";


原始SQL文本总是一个坏主意。我收到的答案和建议可能会导致重复,-谢谢似乎C++不可能模仿像我所描述的C或Python样式。(@Tristan:C++11中有一些可以使用的原始字符串文本。但是,我不知道您使用的编译器是什么,因为并非所有的编译器都支持它。另一个重复-带有一个原始字符串文本示例:原始SQL文本总是一个坏主意。根据我收到的答案和建议,可能重复-谢谢!-似乎是imC++可能模仿C++或Python样式,如我所描述的:-(@特里斯坦:在C++ 11中有可以使用的原始字符串文字。但是,我不知道你使用的编译器是什么,因为不是所有编译器都支持它。另一个DUPE—用原始字符串文字例子:谢谢安德烈,这里的问题(在这种情况下)我不能复制/粘贴sql命令并立即执行它,我必须先删除中间引号。这就是我问题的核心。很难说这种方法比使用反斜杠更好:现在你必须在末尾添加两个字符,而不是一个额外的字符。但我想它确实算作一个区别@达斯布林克赖特:“至少你不必确定反斜杠是线上最后一个字符”特里斯坦:是的……如果你正在寻找一种方法,只需粘贴一个文本块,而不必做每行后处理,那么,不,标准C++没有任何合适的。@安德烈:这取决于哪个版本O。对于您正在使用的标准。C++11引入了允许换行的原始字符串文本。感谢Andrey,这里的问题(在本例中)我不能复制/粘贴sql命令并立即执行它,我必须先删除中间引号。这就是我问题的核心。很难说这种方法比使用反斜杠更好:现在你必须在末尾添加两个字符,而不是一个额外的字符。但我想它确实算作一个区别@达斯布林克赖特:“至少你不必确定反斜杠是线上最后一个字符”特里斯坦:是的……如果你正在寻找一种方法,只需粘贴一个文本块,而不必做每行后处理,那么,不,标准C++没有任何合适的。@安德烈:这取决于哪个版本O。对于您正在使用的标准,C++11引入了允许换行的原始字符串文本。