...
string s = "在c++中,如果要換行請輸入\\n,如果要顯示雙引號則要輸入\\和\",比較麻煩!";
cout << s << endl;
...
運行後,會顯示出字符串【在c++中,如果要換行請輸入\n,如果要顯示雙引號則要輸入\和",比較麻煩!】,不僅麻煩一點,關鍵是可讀性降低不少。所以在c++11版本中,給我們提供了一個raw版字符串,也叫原始字符串,在這種字符串中,每個字符表示的都是它自己,【\n】不再表示換行,【\"】表示的是兩個字符【\】和【"】。使用方法也比較簡單,只需在字符串的開頭處加上【R"(】,然後在結尾處加上【)"】,如下所示:
...
string s = R"(如果使用了raw,顯示換行則只需直接輸入\n即可!)";
cout << s << endl;
運行後,會顯示字符串【如果使用了raw,顯示換行則只需直接輸入\n即可!】。
其中的【R】是raw字符串的前綴,而【"(】和【)"】則是raw字符串格式的界定符,既然【)"】是界定符,那麼如果我們要在字符串中顯示【)"】怎麼辦,用上面那個方法行不行?答案是不行!因爲編譯器在遇到第一個【)"】時,會把這個要顯示的對象當成字符串的結束!不過沒關係,raw爲我們提供了一種別的方法:我們可以在界定符組合中間添加一些其它字符,比如【abc】或【1234】等,但要注意的是,需要在開頭界定符和結尾界定符裏面都要添加,而且這兩組字符必須一致!
...
string s = R"1234(現在,我們連"(和)"都可以顯示了)1234";
cout << s << endl;
...
運行後,會顯示字符串【現在,我們連"(和)"都可以顯示了】。