2015-11-06 59 views
0
theRunners[i] |= (1ULL << (((runnerList)atoll(token)) – 1ULL)); 

为什么给人奇怪的错误行称为错误:流浪“ 226”在程序

error: stray ‘\226’ in program 

有什么不对?

+0

在一些扩展的ASCII字符集中,这是一个“n破折号” - 你可能输入了这个而不是一个普通的连字符(或者你的文本编辑器自动完成)。如果仔细观察,你实际上可以看到它不是一个正常的连字符。 –

+0

使用该属性的一个值得注意的扩展ASCII字符是Windows代码页1252,它是大量Windows安装使用的默认代码页。 – hvd

+0

有时候,在我偶然按下控制键(如CTRL,ALT ...)以及常规按钮(如“空格”)的情况下,在某些文本编辑器中也会出现这种情况。它“翻译”为这些角色。 – mamahuhu

回答

3

在文本您粘贴:其实标志是字符0x96,这在Windows 1252代码页是一种连字符。

您必须改用ASCII减号;尝试删除这段代码并重新输入。

确保您使用的是纯文本编辑器 - 某些文字处理器会自动将标点符号更改为“质朴”的替代版本。

+0

@KemyLand将他的行复制粘贴到一个文本文件中显示出'0x96',实际上它是连字符..再试一次。也许你的浏览器或其他什么都在做一些翻译。 –

+0

@KemyLand然后你使用不同的编码进行检查。尝试转换到Windows代码页1252,你会发现它确实是0x96。请注意,它*不是* latin1:latin1是指ISO-8859-1,它没有定义0x96。 – hvd

+0

@ hvd:我使用ZSH,因此UTF-8编码。如果我单独通过这个破折号,我确实得到了'0x96'。 – 3442