请注意,标题中的 * 是占位符,在我的案例中,罪魁祸首是 ?? [.
Note that the * in the title is meant to be a placeholder, in my case the culprit was ??[.
我刚刚遇到了由双问号组成的C ++(也称为"C")转义序列.这曾经是做什么用的,为什么还在那里呢?
I just came over C++ (also "C") escape sequences, formed by double question marks. What was this ever used for and why is it still there?
我有 ascii-85 编码的文本,很少出现双问号,只是花了一个下午试图在编码器/解码器中发现错误时,将头发从我的头上扯下来,而仅仅是编译器在骗我.
I have ascii-85 encoded text where double question marks seldom occur and just spent an afternoon ripping the hair from my head while attempting to find a bug in the encoder / decoder, while it was simply the compiler playing tricks on me.
推荐答案根据C ++标准
2.4 Trigraph序列[lex.trigraph]
2.4 Trigraph sequences [lex.trigraph]
1在进行任何其他处理之前,以下三个字符序列之一(三字序列")的每次出现都被表1中所示的单个字符代替.表1 — Trigraph序列Trigraph替换Trigraph替换Trigraph替换
1 Before any other processing takes place, each occurrence of one of the following sequences of three characters ("trigraph sequences") is replaced by the single character indicated in Table 1. Table 1 — Trigraph sequences Trigraph Replacement Trigraph Replacement Trigraph Replacement
??= # ??( [ ??< { ??/ \ ??) ] ??> } ??’ ˆ ??! | ??- ~但是,您显示的 ?? * 符号不是三部曲符号.因此很难说出它的意思.
However the symbol you showed ??* is not a trigraph symbol. So it is difficult to say what it means.
看来我已经明白了什么意思了.它们是通配符?和 * ,只是在字符串文字符号?中加倍了::)
It seems I have understood what it means. They are wild characters ? and * Simply inside a string literal symbol ? was doubled.:)
更多推荐
"?? *"C ++转义序列
发布评论