如果您將精確給定的代碼剪切並粘貼到Visual Studio中(一個默認代碼頁1252 - 如果您在另一個代碼頁上,它可能更容易)並嘗試保存它,我會得到一個線索:
此文件中的某些Unicode字符無法保存在當前代碼頁中。
所以,文件本身明顯存在一些問題。另外一個線索是,雖然第一個#include
在Visual Studio中(和在堆棧溢出代碼片段中)正確顯示顏色,但第二個不是。這似乎表明,儘管視覺工作室似乎沒問題,但它本身仍然無法解釋這條線。
這種事情通常是由「搞笑」的Unicode代碼點,如不破或零寬度的空間,或字符看起來像普通拉丁文的人,但實際上可能是希臘人或存在而引起西里爾文(或其他)。
所以,複製該行到a page that interprets Unicode strings變成了下面的代碼點:
0023 NUMBER SIGN
200E * LEFT-TO-RIGHT MARK
0069 LATIN SMALL LETTER I
006E LATIN SMALL LETTER N
0063 LATIN SMALL LETTER C
006C LATIN SMALL LETTER L
0075 LATIN SMALL LETTER U
0064 LATIN SMALL LETTER D
0065 LATIN SMALL LETTER E
202C * POP DIRECTIONAL FORMATTING
0020 SPACE
003C LESS-THAN SIGN
0066 LATIN SMALL LETTER F
0073 LATIN SMALL LETTER S
0074 LATIN SMALL LETTER T
0072 LATIN SMALL LETTER R
0065 LATIN SMALL LETTER E
0061 LATIN SMALL LETTER A
006D LATIN SMALL LETTER M
003E GREATER-THAN SIGN
我用星號標記∗
有問題的代碼點,使其更清晰發生了什麼。這很像這條線是從一個網頁中複製粘貼的,這個網頁中有定向格式化控制字符。
因此,行本身正在導致你看到的編碼錯誤。 其他錯誤(不完整類型)無疑是由於第一個錯誤阻止了實際包含fstream
標頭的事實造成的。
解決方案非常簡單,只需重新輸入當前行下方的行並刪除原始行。
獎金因果報應的人誰可以找到復活節彩蛋在上面的帖子:-)
還有一個缺失的頭。 –
和好的Unicode星號 –
@LightnessRacesinOrbit獲獎。我認爲這會比這更難。或許我不如我想象的那麼聰明:-) – paxdiablo