第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

C ++多行字符串文字

C ++多行字符串文字

C++
開心每一天1111 2019-12-06 07:06:16
有什么方法可以在C ++中使用Perl編寫多行純文本,常量文字?也許解析#include文件有一些技巧?我想不出一個(gè),但是男孩,那太好了。我知道它將用C ++ 0x。
查看完整描述

3 回答

?
www說

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊

好吧。最簡單的方法是使用以下事實(shí):相鄰字符串文字由編譯器連接:


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.";

縮進(jìn)并不重要,因?yàn)樗辉谝?hào)內(nèi)。


只要您注意避開嵌入式換行符,也可以執(zhí)行此操作。失敗,就像我的第一個(gè)答案一樣,將不會(huì)編譯:


const char * text2 =

  “另一方面,我瘋了\

并真正讓文字跨越幾行,

不用麻煩引用每一行的\

內(nèi)容。這可行,但是您不能縮進(jìn)?!?/p>

同樣,請注意每行末尾的那些反斜杠,它們必須緊接在行末之前,它們在源代碼中轉(zhuǎn)義了換行符,以便所有內(nèi)容都好像換行符不在那里。在反斜杠的位置,字符串中不會(huì)出現(xiàn)換行符。使用這種形式,您顯然無法縮進(jìn)文本,因?yàn)榭s進(jìn)將隨后成為字符串的一部分,并在字符串中添加隨機(jī)空格。




查看完整回答
反對(duì) 回復(fù) 2019-12-07
?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊

在C ++ 11中,您具有原始字符串文字。shell和腳本語言(例如Python,Perl和Ruby)中的此處文本有點(diǎn)類似。


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";

字符串中的所有空格和縮進(jìn)以及換行符都將保留。


它們也可以是utf-8 | 16 | 32或wchar_t(具有通常的前綴)。


我應(yīng)該指出,這里實(shí)際上不需要轉(zhuǎn)義序列V0G0N。它的存在將允許在字符串中放入)“。換句話說,我可以將


                "(by Prostetnic Vogon Jeltz; see p. 56/57)"

(請注意額外的引號(hào)),并且上面的字符串仍然正確。否則我也可以使用


const char * vogon_poem = R"( ... )";

仍然需要引號(hào)內(nèi)的括號(hào)。



查看完整回答
反對(duì) 回復(fù) 2019-12-07
?
qq_遁去的一_1

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊

輸入多行字符串的一種可能方便的方法是使用宏。僅當(dāng)引號(hào)和括號(hào)之間是平衡的并且不包含“頂級(jí)”逗號(hào)時(shí),此方法才有效:


#define MULTI_LINE_STRING(a) #a

const char *text = MULTI_LINE_STRING(

  Using this trick(,) you don't need to use quotes.

  Though newlines and     multiple     white   spaces

  will be replaced by a single whitespace.

);

printf("[[%s]]\n",text);

與gcc 4.6或g ++ 4.6一起編譯,會(huì)產(chǎn)生: [[Using this trick(,) you don't need to use quotes. Though newlines and multiple white spaces will be replaced by a single whitespace.]]


請注意,,除非在括號(hào)或引號(hào)中包含,否則不能在字符串中。單引號(hào)是可能的,但是會(huì)產(chǎn)生編譯器警告。


編輯:如評(píng)論中所述,#define MULTI_LINE_STRING(...) #__VA_ARGS__允許使用,。



查看完整回答
反對(duì) 回復(fù) 2019-12-07
  • 3 回答
  • 0 關(guān)注
  • 465 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)