【问题标题】:"??*" C++ escape sequence [duplicate]“??*” C++ 转义序列 [重复]
【发布时间】:2014-07-31 12:56:11
【问题描述】:

请注意,标题中的* 是一个占位符,在我的例子中,罪魁祸首是??[

我刚刚遇到了由双问号组成的 C++(也称为“C”)转义序列。这曾经是用来做什么的,为什么它仍然存在?

我有ascii-85 编码文本,其中很少出现双问号,我只是花了一个下午从我的头上扯下头发,同时试图在编码器/解码器中找到错误,而这只是编译器对我的恶作剧。

【问题讨论】:

标签: c++ string escaping


【解决方案1】:

来自 C++ 标准

2.4 三字母序列 [lex.trigraph]

1 在进行任何其他处理之前,每次出现以下三个字符序列(“三字符序列”)之一时,都将替换为表 1 中指示的单个字符。 表 1 - Trigraph 序列 Trigraph Replacement Trigraph Replacement Trigraph Replacement

??= # ??( [ ??< {
??/ \ ??) ] ??> }
??’ ˆ ??! | ??- ~

但是,您显示的符号 ??* 不是三合符符号。所以很难说是什么意思。

看来我已经明白它的意思了。它们是通配符?* 只是在字符串文字符号? 内加倍。:)

【讨论】:

  • @Cheers 和 hth。 - Alf 这是什么意思?
  • @VladfromMoscow,为你修复了 [filler] [filler]
  • @VladfromMoscow ??* 我的意思是??,后跟一个字符。
  • 我的回答被某个匿名的白痴版主删除了。啊。现在,除了匿名投票之外,我们还可以在 SO 上匿名删除
  • 现在它被一位匿名版主重新删除,他习惯于删除我的简短或有争议的答案,使用昵称 Bill the Lizard。我记得他删除的最后一个帖子当时有大约 20 个赞成票。被一个匿名模组追捕,天哪。
猜你喜欢
  • 2017-04-06
  • 2020-06-20
  • 1970-01-01
  • 1970-01-01
  • 2016-06-01
  • 2015-09-12
  • 2020-03-06
  • 1970-01-01
相关资源
最近更新 更多