有没有办法在 C++ 中使用 Perl 那样的多行纯文本、常量文字?
也许有一些解析技巧#include
正在读取一个文件?
我知道你可以用 C++11 中的原始字符串来做到这一点。
嗯……有点。最简单的方法是仅使用相邻字符串文字由编译器连接的事实:
const char *text =
"This text is pretty long, but will be "
"concatenated into just a single string. "
"The disadvantage is that you have to quote "
"each part, and newlines must be literal as "
"usual.";
缩进并不重要,因为它不在引号内。
您也可以这样做,只要注意转义嵌入的换行符即可。如果不这样做,就像我的第一个答案一样,将无法编译:
const char *text2 =
"Here, on the other hand, I've gone crazy \
and really let the literal span several lines, \
without bothering with quoting each line's \
content. This works, but you can't indent.";
再次注意每行末尾的反斜杠,它们必须紧接在行结束之前,它们在源中转义换行符,以便所有内容都表现得好像换行符不存在一样。在字符串中有反斜杠的位置不会出现换行符。使用这种形式,您显然无法缩进文本,因为缩进将成为字符串的一部分,并用随机空格混淆它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)