|
|
1
505
好。。。某种程度上。最简单的方法是使用编译器连接相邻字符串的事实:
缩进并不重要,因为它不在引号内。 你也可以这样做,只要你注意避开嵌入的换行符。不这样做,就像我的第一个答案一样,不会编译: 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."; 同样,注意每行末尾的反斜杠,它们必须在行尾之前,它们正在从源代码中转义换行符,以便所有的操作都像换行符不在那里一样。在反斜杠所在的位置,字符串中没有换行符。使用此表单,显然无法缩进文本,因为缩进将成为字符串的一部分,并将其与随机空格混淆。 |
|
2
301
在C++ 11中,有原始字符串文字。有点像这里的shell和脚本语言中的文本,比如python、perl和ruby。
保留字符串中的所有空格、缩进和换行符。 它们也可以是utf-8_16_32或wchar_t(带有通常的前缀)。 我要指出的是,逃逸序列v0g0n实际上并不需要。它的存在将允许将)“放入字符串中。换句话说,我可以
(注意额外的引号)和上面的字符串仍然是正确的。否则我也可以用
引号内的parens仍然是必需的。 |
|
|
3
25
|
|
|
4
23
输入多行字符串的一种可能方便的方法是使用宏。这仅在引号和括号平衡且不包含“顶级”逗号时有效:
使用GCC 4.6或G++4.6编译,可以生成:
请注意
编辑:
如评论所述,
|
|
|
5
12
你可以这样做:
|
|
|
6
9
因为一点经验值很多理论,我尝试了一个小测试程序
用编译此片段
背后的诡计
|
|
|
7
7
只是为了在@ unSune的回答中解释一下@ EMSR的注释,如果一个不幸运的话有一个C++ 11编译器(比如GCC 4.2.1),并且想要在字符串中嵌入换行符(char *或类字符串),你可以这样写:
很明显,是的,但是@emsr的简短评论在我第一次读到这篇文章时并没有跳出来,所以我必须自己去发现。希望,我已经救了别人几分钟了。 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |