每当我与负数进行比较时,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;
}
答案 0 :(得分:5)
第三个前面的破折号是一个看起来像破折号的Unicode字符。删除它,并插入一个新的破折号,你会没事的。
如果您使用了复制粘贴,请注意,因为粘贴的代码可能包含Unicode字符,并且可能会导致编译错误。
如果您手动将其键入编辑器,请使用其他编辑器或更改编辑器的设置,以便不将标准超标转换为其他字符。例如。 Microsoft Word执行此转换,但我希望您不在Word中编写代码。
错误消息的解释:
您将文件保存为UTF-8字符集。您使用的更改后的连字符保存为三个连续字节:0xE2 0x80 0x93
(六进制值)
g ++逐字节解析文件。它首先遇到0xE2
,它认为无效并输出error: stray '\342' in program
。 342
是0xE2
的八进制表示。 \342
是有效的C ++代码,它是0xE2字符的转义版本。有关详细信息,请参阅C ++ escape sequences,\nnn
表示八进制nnn
数字表示的字符。