关于如何修复这个错误有什么想法吗? 当我试图在UNIX服务器上编译我的C++代码时,我一直在获得一个异常,但是这些行只有: #ifndef WEIGHTED_GRAPH_H #endif

关于如何修复这个错误有什么想法吗? 当我试图在UNIX服务器上编译我的C++代码时,我一直在获得一个异常,但是这些行只有: #ifndef WEIGHTED_GRAPH_H #endif,c++,unix,compiler-errors,C++,Unix,Compiler Errors,错误是: In file included from Weighted_graph_tester.h:17, from Weighted_graph_driver.cpp:18: Weighted_graph.h:1: error: stray â\357â in program Weighted_graph.h:1: error: stray â\273â in program Weighted_graph.h:1: error

错误是:

In file included from Weighted_graph_tester.h:17,
                     from Weighted_graph_driver.cpp:18:
    Weighted_graph.h:1: error: stray â\357â in program
    Weighted_graph.h:1: error: stray â\273â in program
    Weighted_graph.h:1: error: stray â\277â in program
    Weighted_graph.h:1: error: stray â#â in program
    In file included from Weighted_graph_tester.h:17,
                     from Weighted_graph_driver.cpp:18:
    Weighted_graph.h:172:2: error: #endif without #if
    Weighted_graph.h:1: error: âifndefâ does not name a type

有什么想法吗?

它告诉您文件中有以下字节:

Oct: 357 273 277
Hex: EF  BB  BF
这些是UTF-8编码文件中的。显然,您的编译器不支持开头带有字节顺序标记的UTF-8源文件。事实上,在UTF-8文件中使用字节顺序标记是没有意义的,因为任何单个单元的大小都只有一个字节。您应该确保保存文件时不带它

根据Unicode标准:

UTF-8既不要求也不建议使用BOM,但在UTF-8数据从使用BOM的其他编码形式转换或BOM用作UTF-8签名的情况下可能会遇到


它告诉您文件中有以下字节:

Oct: 357 273 277
Hex: EF  BB  BF
这些是UTF-8编码文件中的。显然,您的编译器不支持开头带有字节顺序标记的UTF-8源文件。事实上,在UTF-8文件中使用字节顺序标记是没有意义的,因为任何单个单元的大小都只有一个字节。您应该确保保存文件时不带它

根据Unicode标准:

UTF-8既不要求也不建议使用BOM,但在UTF-8数据从使用BOM的其他编码形式转换或BOM用作UTF-8签名的情况下可能会遇到


您的源代码中可能有一些奇怪的字符。尝试在十六进制查看器中查看它…您的源代码中可能有一些奇怪的字符。尝试在十六进制查看器中查看它…是的,就是这样,我将代码移到了一个新文件中,它修复了问题。谢谢:我会尽快给你支票me@user2036348谢谢很高兴能帮上忙。UTF-8 BOM确实将文件标识为UTF-8。但这并不是使用它的充分理由。它破坏了UTF-8文件的太多有用的特性,使连接文件或提取部分文件变得困难。是的,就是这样,我将代码移到了一个新文件中,并解决了问题。谢谢:我会尽快给你支票me@user2036348谢谢很高兴能帮上忙。UTF-8 BOM确实将文件标识为UTF-8。但这并不是使用它的充分理由。它破坏了UTF-8文件的太多有用特性,使得连接文件或提取部分文件变得困难。