You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决C++原始字符串包含终止符时的编译报错问题?

解决C++原始字符串包含默认终止符的问题

这个问题我之前处理过好几次,本质就是C++原始字符串的默认终止符和你要写的内容撞车了,咱们分分钟搞定它~

首先得明确C++原始字符串的完整语法:原始字符串的标准格式是 R"delim(原始内容)delim",其中delim是可选的自定义分隔符。当你不写delim的时候,默认的终止符就是)"——这正好是你字符串里"(add)"最后那两个字符,编译器会误以为这里就是原始字符串的结束位置,自然就报错了。

解决方法超简单:给原始字符串加一个自定义分隔符,只要这个分隔符不在你的目标字符串里出现就行。比如咱们可以选一个简单的标记,比如tag、xxx或者任意符合规则的字符组合:

举个例子,你想要得到字符串"(add)",可以这么写:

auto tag = R"tag("(add)")tag";

或者换个更简洁的分隔符,比如下划线_:

auto tag = R"_("(add)")_";

这里要注意两个小规则:

  • 分隔符delim最多可以有16个字符,不能包含空格、括号()、反斜杠\和控制字符
  • 开头的R"delim(和结尾的)delim"必须严格对应,分隔符要完全一致

这样编译器就会把中间的"(add)"完整识别成原始字符串内容,不会再误判终止位置啦。

内容的提问来源于stack exchange,提问作者freyone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:27:20