开发者社区> 华章计算机> 正文

《C语言解惑》—— 1.1 中文字符以假乱真

简介:
+关注继续查看

本节书摘来自华章出版社《C语言解惑》一 书中的第1章,第1.1节,作者:刘振安 刘燕君,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.1 中文字符以假乱真

不管是初学者还是有经验的程序员,都会碰到这个问题。这往往是在拼音状态下输入标点符号之类的字符造成的。假设语句

printf("%s","OK");

中的“,”号是中文字符,编译器会给出如下信息:

error C2018: unknown character '0xa3'
error C2018: unknown character '0xac'

注意:只要给出“0xa”的标识,就可断定该行存在中文字符。

只要稍微注意一下就可以避免这个错误。其实,多数的错误不是在输入程序时误输入,而是直接将Word文档里或网上的程序拷贝到源文件中造成的。一般是因为整理文档里的程序时,人为地使用中文字符或插入图形符号,例如&、[、] 、& 、# 、﹨等符号。
只要编译系统给出出错信息并定位到所在行,就很容易判断出错误。有点难度的是中文空格,这个空格一般有三种情况:一行的首、尾和其他位置。假设下面程序除第1行之外,其他行的首尾均有空格,看看这类错误的表现形式。

#include <stdio.h>
void main( ) 
{ 
         printf("%s\n","OK");   //打印输出
}

当编译给出第二行有错误的信息时,可以把鼠标光标放到第一行的尾部,按一下“↓”键,这时光标移到下一行并停在离“)”的一段距离处,这说明光标左边有中文空格。用Backspace键删除前面的空格,删到“)”处即可。如果将光标放在“#”处,按一下“↓”键,光标会停在离字母“v”的一段距离处,使用删除键删除右边的空格即可。
其他各行同样处理,对于第4行,如果“//”号的字体不是绿色的,说明注释语句之前有空格,注释不起作用,往左边删除,直到“//”号变为绿色。
需要注意的是,编译拷贝的程序时,可能会给出很多错误信息,而且可能给出的错误种类也很多。如果第1个错误就有“0xa”的标识,则一定要先解决它。有时解决它之后,其他的错误可能就没有了。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
C语言及算法设计课程实验五:循环结构程序设计
C语言及算法设计课程实验五:循环结构程序设计
18 0
C语言及算法设计课程实验四:选择结构程序设计(下)
C语言及算法设计课程实验四:选择结构程序设计(下)
58 0
C语言及算法设计课程实验四:选择结构程序设计(上)
C语言及算法设计课程实验四:选择结构程序设计(上)
76 0
C语言及算法设计课程实验三:最简单的C程序设计——顺序程序设计(四)
C语言及算法设计课程实验三:最简单的C程序设计——顺序程序设计(四)
40 0
C语言及算法设计课程实验三:最简单的C程序设计——顺序程序设计(三)
C语言及算法设计课程实验三:最简单的C程序设计——顺序程序设计(三)
31 0
C语言及算法设计课程实验三:最简单的C程序设计——顺序程序设计(二)
C语言及算法设计课程实验三:最简单的C程序设计——顺序程序设计(二)
66 0
C语言程序设计教程任务;初步认识C语言,携君之手,步入编程之路。
C语言程序设计教程任务;初步认识C语言,携君之手,步入编程之路。
40 0
[C语言学习]C语言程序设计基础(三)
[C语言学习]C语言程序设计基础(三)
33 0
[C语言学习]C语言程序设计基础(二)
[C语言学习]C语言程序设计基础(二)
41 0
[C语言学习]C语言程序设计基础(一)
[C语言学习]C语言程序设计基础(一)
85 0
+关注
华章计算机
文章
问答
视频
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载