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

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

C ++多行字符串文字

C ++多行字符串文字

C++
拉風(fēng)的咖菲貓 2019-10-23 16:02:55
有什么方法可以在C ++中使用Perl編寫多行純文本,常量文字?也許解析#include文件有一些技巧?我想不出一個,但是男孩,那太好了。我知道它將用C ++ 0x。
查看完整描述

3 回答

?
青春有我

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

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


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)并不重要,因為它不在引號內(nèi)。


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


const char * text2 =

  “另一方面,我瘋了\

并真正讓文字跨越幾行,

不用麻煩引用每一行的\

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

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


查看完整回答
反對 回復(fù) 2019-10-23
?
溫溫醬

TA貢獻(xiàn)1752條經(jīng)驗 獲得超4個贊

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

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


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


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


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

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


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

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


查看完整回答
反對 回復(fù) 2019-10-23
?
一只名叫tom的貓

TA貢獻(xiàn)1906條經(jīng)驗 獲得超3個贊

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


#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一起編譯,會產(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.]]


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


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


查看完整回答
反對 回復(fù) 2019-10-23
  • 3 回答
  • 0 關(guān)注
  • 801 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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