字符串文字中的反斜杠字符

Fro*_*art 1 c c++

为什么以下程序的输出:

str                 str
Run Code Online (Sandbox Code Playgroud)

而不是这个:

str str
Run Code Online (Sandbox Code Playgroud)

这是该计划:

#include <iostream>

int main()
{
   std::cout << "str \
                str \n";
}
Run Code Online (Sandbox Code Playgroud)

我尝试了gcc 4.7.2和MSVC-11.0.

Oli*_*rth 9

因为\在换行之前表示行继续.* 所以你的两条线字面拼接在一起,包括所有的空白.

你可以试试这个:

std::cout << "str "
                "str \n";
Run Code Online (Sandbox Code Playgroud)

因为相邻的字符串文字是连接的.


*来自C99,第5.1.1.2节:

\删除反斜杠字符()后面紧跟一个新行字符的每个实例,拼接物理源代码行以形成逻辑源代码行.