C++11 可以在代码里嵌入一段原始字符串,该原始字符串不作任何转义,所见即所得。这个特性对于编写代码时要输入多行字符串,或者含带有特殊字符的字符串提供了巨大方便。
语法:
R"(...)"
记忆点:
1.不做任何转义
string str = "aaa\nbbb\nccc\n";
cout << str <<endl;
cout << "***************" <<endl;
string raw_str = R"(aaa\nbbb\nccc\n)";
cout << raw_str <<endl;
输出:
aaa
bbb
ccc
***************
aaa\nbbb\nccc\n
其中 str 是常规的C++字符串,对\n 进行了转义,而raw_str没有进行任何转义,所见即所得。
2。可以多行输入文本
例如
aaa
bbb
ccc
qqq
输入:
cout<<R"(aaa
bbb
ccc
qqq
)";
输出:
aaa
bbb
ccc
qqq
比较典型的是洛谷P1000 超级玛丽游戏P1000 超级玛丽游戏
#include<bits/stdc++.h>
using namespace std;
int main(){
cout<<R"( ********
************
####....#.
#..###.....##....
###.......###### ### ###
........... #...# #...#
##*####### #.#.# #.#.#
####*******###### #.#.# #.#.#
...#***.****.*###.... #...# #...#
....**********##..... ### ###
....**** *****....
#### ####
###### ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
########################################## #----------#
#.....#......##.....#......##.....#......# #----------#
########################################## #----------#
#.#..#....#..##.#..#....#..##.#..#....#..# #----------#
########################################## ############)";
}
标签:...,aaa,string,bbb,C++,转义,字符串,cout
From: https://blog.csdn.net/2301_80685708/article/details/142557247