编码导致的 C2065 未声明的标识符

作者在VS中运行他人C++代码时遇到报错,有编码WARNING和函数未声明等ERROR。起初怀疑库导入问题,后聚焦编码问题,将文件另存为Unicode格式仍有问题。最后查询微软官方文档,按其操作选择合适编码保存文件,问题解决。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天在用VS打算跑下别人写的C++代码,按照经验复制粘帖处理了下库和包含问题后发现报错.
主要现象是有一个关于编码的WARNING和一堆主要是函数未声明之类的ERROR,还有些奇奇怪怪的东西.这报错让人完全摸不着头脑.
在这里插入图片描述
刚开始觉得是某些库没导入或者是导入冲突什么的,但是发现每个库的类都有能用的,也有不能用的.于是怀疑了很久的人生.
最后聚焦到了这个WARNING上,觉得可能是这个编码问题,于是用Windows自带的笔记本给它另存为了个Unicode格式.再次打开发现变成了这个样子:
在这里插入图片描述
发现了没,这些报错终于体现在了编辑器上了,原因是由于编码问题某些换行消失了.
但是我已经转换成Unicode了啊,为什么还是有问题?于是经过查询编码相关知识后认为我一通操作还是没有转化到微软想让我用的编码.

最后看到在微软的官方文档上这么写着:

若要将文件保存为 Unicode 格式,在 Visual Studio 中,选择文件 > 另存为。
在中将文件另存为对话框框中,选择下拉列表上保存按钮,然后选择编码保存。 如果将保存到相同的文件名,您可能需要确认你想要替换的文件。
中高级保存选项对话框中,选择可以表示该文件中的所有字符编码-例如, Unicode (utf-8 带签名)-代码页
65001,然后选择确定。

照着操作,就好了……

>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(10): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(25): error C2065: “_Ptr_cin”: 未声明标识符 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(25): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(26): error C2065: “_Ptr_cout”: 未声明标识符 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(26): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(27): error C2065: “_Ptr_cerr”: 未声明标识符 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(27): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(28): error C2065: “_Ptr_clog”: 未声明标识符 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(28): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(30): error C2065: “_Ptr_wcin”: 未声明标识符 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(30): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(31): error C2065: “_Ptr_wcout”: 未声明标识符 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(31): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(32): error C2065: “_Ptr_wcerr”: 未声明标识符 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(32): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(33): error C2065: “_Ptr_wclog”: 未声明标识符 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(33): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(36): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(42): error C2143: 语法错误 : 缺少“;”(在“}”的前面) 1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\iostream(45): error C2143: 语法错误 : 缺少“;”(在“}”的前面) 1>MyColorSetter.cpp(17): error C2039: “cerr”: 不是“std”的成员 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_defs.h(30): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_defs.h(63): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_defs.h(66): error C2143: 语法错误 : 缺少“;”(在“}”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_defs.h(155): error C2143: 语法错误 : 缺少“;”(在“}”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(26): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(60): error C2146: 语法错误: 缺少“,”(在标识符“retcod”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(60): error C2065: “retcod”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(68): error C2146: 语法错误: 缺少“,”(在标识符“param_len”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(68): error C2065: “param_len”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(68): error C2143: 语法错误 : 缺少“,”(在“)”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(163): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(177): error C2143: 语法错误 : 缺少“;”(在“}”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(179): error C2065: “UF_args_p_t”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(179): error C2143: 语法错误 : 缺少“,”(在“;”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(214): error C2065: “UF_args_p_t”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(238): error C2065: “UF_args_p_t”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf_ugopenint.h(247): error C2143: 语法错误 : 缺少“;”(在“}”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(27): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(99): error C2143: 语法错误 : 缺少“;”(在“{”的前面) 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(101): error C2065: “UF_CODESET_NOT_SUPPORT”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(102): error C2065: “UF_CODESET_ASCII”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(106): error C2065: “UF_CODESET_ISO8859_1”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(107): error C2065: “UF_CODESET_EUC”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(108): error C2065: “UF_CODESET_SJIS”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(109): error C2065: “UF_CODESET_ISO8859_4”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(111): error C2065: “UF_CODESET_ISO8859_5”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(113): error C2065: “UF_CODESET_ISO8859_8”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(114): error C2065: “UF_CODESET_BIG5”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(115): error C2065: “UF_CODESET_NT_866”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(116): error C2065: “UF_CODESET_ISO8859_2”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(118): error C2065: “UF_CODESET_NT_852”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(119): error C2065: “UF_CODESET_NT_862”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(120): error C2065: “UF_CODESET_KSC5601”: 未声明标识符 1>D:\Program Files\Siemens\NX 8.5\ugopen\uf.h(120): fatal error C1003: 错误计数超过 100;正在停止编译
最新发布
06-13
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值