C++11 标准为 C++ 编程语言的第三个官方标准,包含了核心语言的新机能,并且拓展 C++ 的标准程序库,加入了大部分的 C++ Technical Report 1 程序库。

看到形如:R"" 这样的写法,相信学过 Python 的童鞋会感到似曾相识。Python 支持所谓的 “raw string”,它最大的特点就是将反斜杠视为文字字符。

C++11 也新增了一种叫原始字符串(Raw String Literals)的类型。在原始字符串中,字符表示的就是它自己,而无需使用 "\" 转义,例如,"\n" 不表示换行符,而是表示两个常规字符:"\" 和 "n",这时使用 "\n" 将不再输出换行符。
原始字符串使用 "( 和 )" 作为定界符,并使用 R 来标识原始字符串:

cout<<R"(Hello,"C++".)"<<endl;

上述代码将输出以下内容:

Hello,"C++".

如果不使用原始字符串,则需要将代码改为:

cout<<"Hello,\"C++\"."<<endl;

原始字符串还可以自定义定界符,默认定界符是 "( 和 )"。因此若想要在字符串中允许 )" ,则必须自定义定界符。如:

cout<<R"+*("(Who is it?)" It's your neighbor.)+*"<<endl;

将输出:

"(Who is it?)" It's your neighbor.

自定义定界符是在默认定界符之间田间任意数量的基本字符,但空格,斜杠,括号除外。
原始字符串可以还包括换行符,示例代码如下(让你体会复制粘贴的恐惧 ):

#include <iostream> //This program needs C + + 11 to compile.
using namespace std;
int main()
{
    cout<<R"(                ********
               ************
               ####....#.
             #..###.....##....
             ###.......######              ###            ###
                ...........               #...#          #...#
               ##*#######                 #.#.#          #.#.#
            ####*******######             #.#.#          #.#.#
           ...#***.****.*###....          #...#          #...#
           ....**********##.....           ###            ###
           ....****    *****....
             ####        ####
           ######        ######
##############################################################
#...#......#.##...#......#.##...#......#.##------------------#
###########################################------------------#
#..#....#....##..#....#....##..#....#....#####################
##########################################    #----------#
#.....#......##.....#......##.....#......#    #----------#
##########################################    #----------#
#.#..#....#..##.#..#....#..##.#..#....#..#    #----------#
##########################################    ############)"<<endl;
    return 0;
}

代码将输出一个超级玛丽的界面:

SuperMarie.png

Ps: 这段时间备战蓝桥杯 EV3 国赛,一直没来得及写博客,拖更了一个多星期,再过几天就应该恢复正常了。

最后修改:2021 年 05 月 28 日
赠人玫瑰,手有余香。您的赞赏是对我最大的支持!