有没有办法在C++中使用多行纯文本,常量文字,就像Perl一样?也许是#include
在文件中的一些解析技巧?我想不出一个,但是天哪,那太好了。我知道它会在C++0x里。
发布于 2011-03-28 22:11:47
在C++11中,您有原始的字符串文字。有点像这里-shell和脚本语言中的文本,如Python、Perl和Ruby。
const char * vogon_poem = R"V0G0N(
O freddled gruntbuggly thy micturations are to me
As plured gabbleblochits on a lurgid bee.
Groop, I implore thee my foonting turlingdromes.
And hooptiously drangle me with crinkly bindlewurdles,
Or I will rend thee in the gobberwarts with my blurlecruncheon, see if I don't.
(by Prostetnic Vogon Jeltz; see p. 56/57)
)V0G0N";
字符串中的所有空格、缩进和换行符都将保留。
它们也可以是utf-8|16|32或wchar_t (带有常用的前缀)。
我应该指出的是,转义序列V0G0N在这里实际上并不需要。它的存在将允许将)“放入字符串中。
"(by Prostetnic Vogon Jeltz; see p. 56/57)"
(注意额外的引号),上面的字符串仍然是正确的。否则我也可以用
const char * vogon_poem = R"( ... )";
仍然需要引号内的花括号。
发布于 2019-04-15 20:49:49
您还可以执行以下操作:
const char *longString = R""""(
This is
a very
long
string
)"""";
发布于 2013-01-12 21:08:47
#define MULTILINE(...) #__VA_ARGS__
消耗括号之间的所有内容。
将任意数量的连续空格字符替换为单个空格。
https://stackoverflow.com/questions/1135841
复制相似问题