首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >C++多行字符串文字

C++多行字符串文字
EN

Stack Overflow用户
提问于 2009-07-16 06:55:57
回答 8查看 408.4K关注 0票数 497

有没有办法在C++中使用多行纯文本,常量文字,就像Perl一样?也许是#include在文件中的一些解析技巧?我想不出一个,但是天哪,那太好了。我知道它会在C++0x里。

EN

回答 8

Stack Overflow用户

发布于 2011-03-28 22:11:47

在C++11中,您有原始的字符串文字。有点像这里-shell和脚本语言中的文本,如Python、Perl和Ruby。

代码语言:javascript
复制
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在这里实际上并不需要。它的存在将允许将)“放入字符串中。

代码语言:javascript
复制
                "(by Prostetnic Vogon Jeltz; see p. 56/57)"

(注意额外的引号),上面的字符串仍然是正确的。否则我也可以用

代码语言:javascript
复制
const char * vogon_poem = R"( ... )";

仍然需要引号内的花括号。

票数 507
EN

Stack Overflow用户

发布于 2019-04-15 20:49:49

您还可以执行以下操作:

代码语言:javascript
复制
const char *longString = R""""(
This is 
a very 
long 
string
)"""";
票数 38
EN

Stack Overflow用户

发布于 2013-01-12 21:08:47

#define MULTILINE(...) #__VA_ARGS__

消耗括号之间的所有内容。

将任意数量的连续空格字符替换为单个空格。

票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1135841

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档