如何将源代码中的一个长字符串拆分为几行,以提高C++的可读性



换句话说,如果我不想写一行代码,如何使代码正常工作?

#include <string>
using namespace std;
int main()
{
string menu = "";
menu += "MENU:n"
+ "1. option 1n"
+ "2. option 2n"
+ "3. option 3n"
+ "4. 10 more optionsn";
}

只需删除+的:

#include <string>
int main()
{
std::string menu = "MENU:n"
"1. option 1n"
"2. option 2n"
"3. option 3n"
"4. 10 more optionsn";
}

编译器会自动连接相邻的字符串文字。

或者,在C++11中,您可以使用原始字符串文字,它保留所有缩进和换行:

#include <string>
int main()
{
std::string menu = R"(MENU:
1. option 1
2. option 2
3. option 3
4. 10 more options
)";
}

您不需要+s。只要去掉这些,编译器就会将所有字符串文字连接成一个长字符串:

menu += "MENU:n"
"1. option 1n"
"2. option 2n"
"3. option 3n"
"4. 10 more optionsn";

只需删除示例中的add运算符。没有任何内容的连续字符串只是简单地连接在一起。因此,例如,两个连续的令牌"hello " "world""hello world"相同。但请记住,源代码换行符可以分隔任意两个标记,因此"hello ""world"可以位于不同的行上,正如您所希望的那样。

最新更新