首页 > 编程语言 >C++ 原始字符串(raw string literal )R“(...)“

C++ 原始字符串(raw string literal )R“(...)“

时间:2024-09-26 18:20:02浏览次数:8  
标签:... aaa string bbb C++ 转义 字符串 cout

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

相关文章

  • c++笔记
    类和对象类用于指定对象的形式,是一种用户自定义的数据类型,它是一种封装了数据和函数的组合。类中的数据称为成员变量,函数称为成员函数。类可以被看作是一种模板,可以用来创建具有相同属性和行为的多个对象。一、定义类类的定义需要使用关键字class,然后指定类的名称,类的......
  • C++—单例设计模式
    单例设计模式C++中的单例设计模式是一种常用的软件设计模式,其核心目的是确保一个类仅有一个实例,并提供一个全局访问点来获取这个实例。以下是对C++单例设计模式的详细解释:一、单例设计模式的定义单例模式(SingletonPattern)是一种创建型设计模式,它确保一个类只有一个实例,......
  • C++学习,信号处理
    C++信号处理,依赖于操作系统提供的API。信号处理主要用于响应外部事件,如中断信号(如SIGINT,SIGTERM等),这些信号可以由操作系统、其他程序或用户生成。在Unix-like系统(如Linux和macOS)中,信号处理可以通过signal函数或更灵活的sigaction函数来设置。在C++程序中直接使用这些函数是......
  • C++学习,# 和 ## 运算符
    C++中,# 和 ## 是两个特殊的预处理运算符,它们主要在宏定义中使用,用于字符串化和标记粘贴(tokenpasting)操作。 # 运算符:字符串化# 运算符用于将其后的宏参数转换为一个字符串常量。如果宏参数是一个宏标识符,则它会被转换成用双引号括起来的该标识符的字符串表示。这个操......
  • 外包干了10个月,技术退步明显.......
    先说一下自己的情况,大专生,18年通过校招进入武汉某软件公司,干了接近4年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试,已经让我变得不思进取,谈了2年的女朋友也因为我的心态和工资和我分手了。于......
  • 【VUE】[Violation] Added non-passive event listener to a scroll-blocking...
    1.问题[Violation]Addednon-passiveeventlistenertoascroll-blocking<某些>事件.Considermarkingeventhandleras'passive'tomakethepagemoreresponsive.See<URL>译:[违规]向滚动阻止添加了非被动事件侦听器<某些>事件.请考虑将事件处理程序标记为“被......
  • Effective C++学习
    导读声明式externintx;std::size_tnumDigits(intnum);classPerson;template<typenameT>classGraphNode;签名式std::size_t(int);//这个函数获得一个int,返回一个size_t定义式intx;std::size_tnumDigits(intnum){std::size_tdigitSoFar=......
  • C++ -函数重载-详解
    博客主页:【夜泉_ly】本文专栏:【C++】欢迎点赞......
  • 【C++掌中宝】类和对象(一):类的定义和实例化
    文章目录引言1.什么是类?1.1类的定义1.1.1类定义格式1.1.2访问限定符1.1.3类域1.2类在编程中的作用——抽象与封装2.类的基本组成2.1成员变量:类的属性(变量)2.2成员函数:类的行为(函数)2.3完整代码示例3.什么是对象?2.1实例化2.1.1实例化概念2.1.2对象大小(内......
  • 【C++掌中宝】从std的角度来进一步了解命名空间
    文章目录前言1.什么是命名空间(namespace)?2.\<iostream\>和\<iostream.h\>的区别3.C++命名空间的三种使用方式3.1直接指定标识符3.2使用using关键字3.3使用usingnamespacestd4.为什么避免使用usingnamespacestd5.命名空间冲突与解决方案6.命名空间的最......