2015-11-06 61 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