【发布时间】:2014-06-07 20:07:08
【问题描述】:
每当我与负数进行比较时,GCC 都会向我显示:
error: stray '\342' in program
if ( -4 < ÔÇô3 ) return 1;
^
compilation terminated due to -Wfatal-errors.
代码:
int main() {
if ( -4 < –3 ) return 1;
return 0;
}
【问题讨论】:
-
使用合适的文本编辑器编写代码。
-
我认为很明显哪个角色导致了问题。这是一个改变的连字符。愚蠢的website 没有办法分享我可以看到的结果,但是i.imgur.com/Q6QtHCm.png。将其与normal hyphen 进行比较。
-
你没有漏掉接下来报告的两个杂散字符(在这种情况下它们形成一个单元)?其中许多以 342(八进制)开头:U+200B (342 200 213, ZERO WIDTH SPACE), U+2013 (342 200 223, EN DASH), U+2014 (342 200 224, EM DASH) 和U+2212 (342 210 222, MINUS SIGN)。
-
OK,这里贴出的代码,最接近源代码的是342 200 223。342 200 223(八进制)→0xE2 0x80 0x93(十六进制)→Unicode代码点U的UTF-8序列+2013 (EN DASH)。大多数具有regular expression 模式的文本编辑器(例如Geany(Linux 和Windows)和Notepad++)将能够使用
\x{2013}搜索/替换Unicode 代码点U+2013。
标签: c++ gcc compiler-errors