c语言中运行报错 error C2018: unknown character ✀0xa1✀,可是整个语句根本没有✀0xa1✀···为啥啊

2024-11-20 06:33:45
推荐回答(5个)
回答1:

错误原因:'0xa1' 是一个字符,ASCII码是161(16进制0xa1),这是因为错误行含有全角字符,全角的空格的编码是'0xa1'。

解决方法:仔细检查错误行看是否含有全角空格\分号等待,或者注释掉,再重新写一遍

注意:每行的前面都有个看不见的全角空格。

扩展资料:

C语言常见错误:

1.书写标识符时,忽略大小写:

编译程序会出错,C语言区分大小写,习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。

2.忽略变量类型,进行不合法运算:

%是求余运算,得到a/b的整余数。整型变量可进行求余运算,而实型变量则不允许进行求余运算。

3.字符常量与字符串常量混淆:

字符常量是一对单引号括起来的常量,字符串常量是一对双引号括起来的常量。C语言规定以“\0”作为字符串结束标志,它是系统自动加上的,所以字符常量“b”其实包含两个字符'b' '\0',而把它赋给一个字符变量是不行的。

4.忘加地址运算符“&”:scanf函数的作用是:

按照a在内存中的地址将a的值存进去。“&a”是指a在内存中的地址。

5.忽略了“=”和“==”的区别:

C语言中,“=”是赋值运算符,“==”是关系运算符。在此代码中,前者是进行比较,后者是进行赋值。

回答2:

'0xa1' 是一个字符,ASCII码是161(16进制0xa1),是不可打印字符

把报错的那一行的空白全部替换成空格(或Tab)就可以了

出现这样的编译错误,一般都是因为复制,粘贴造成的

回答3:

你的代码行间或字间隐藏了汉字空格或其他什么编译器不认识的东西了。你把报错的那一两行重新认真地敲一遍就OK了……

回答4:

使用了中文字符

回答5:

代码贴出来看一下呗