AcgoIDE错误检测系统最新错误
2025-08-23 10:18:30
发布于:广东
@AC君
Acgo IDE错误检测系统最新错误
系统配置
- Windows 10
- Edge
Bug
- 使用Acgo IDE时没有红点报错却无法运行
(注意看图片最左边)
源代码
#include<bits/stdc++.h>
using namespace std;
void 梁非凡(){
printf("Hello World");
return;
}
int main(){
梁非凡();
return 0;
}
报错代码
编译错误: /code/judger/test/1959067780115468288/main.cpp:79:6: error: stray '\346' in program
79 | void 梁非凡(){
| ^
/code/judger/test/1959067780115468288/main.cpp:79:7: error: stray '\242' in program
79 | void 梁非凡(){
| ^
/code/judger/test/1959067780115468288/main.cpp:79:8: error: stray '\201' in program
79 | void 梁非凡(){
| ^
compilation terminated due to -fmax-errors=3.
说人话,就是
这个编译错误是由于在C++代码中直接使用了中文字符"梁非凡"作为函数名导致的。
C++编译器要求函数名必须由ASCII字符组成(字母、数字、下划线),不能包含中文或其他非ASCII字符。
编译器检测到非法字符'\346'、'\242'、'\201',这些都是中文字符"梁"的UTF-8编码字节
C++标准规定标识符(函数名/变量名等)只能包含:A-Z,a-z,0-9和下划线_
Bug复现
只需要用非英文定义函数名、变量名等需要自定义名称的地方即可复现此Bug
比如上面的源代码就是用中文定义了一个函数。
Bug修改建议
检测代码中的非字符、字符串的内容,进行特判,若出现r'[^\w]'
(Python3.8正则表达式) 的内容就直接进行亮红点进行提醒。(特判不要堆太多,否则堆着堆着就变祖传代码了,维护难度巨高)
**********正文结束**********
小广告
欢迎擅长Python3爬虫技术的同志加入我们DarkforestUnion团队一起学习探究爬虫技术!
团队入口传送门
全部评论 3
额……python好像可以写中文
1周前 来自 江西
0import random as 随机数 随机数.生成 = 随机数.randint 打印 = print def 函数(起点, 终点): 打印("哈哈哈,用中文写随机数:", 随机数.生成(起点, 终点)) 函数(1, 100)
1周前 来自 江西
0这是由于python使用的是utf-8,支持中文
不像c++6天前 来自 广东
0
实际上IDE BUG多的要死,建议直接关闭代码补全
1周前 来自 上海
0emmmmm.那个不至于要关吧...
1周前 来自 广东
0
1周前 来自 上海
0
有帮助,赞一个