linux 下运行C的程序,终端运行出现乱码,该怎么解决?!!

linux 下运行C的程序,终端运行出现乱码,该怎么解决?!!,第1张

在linux下,其实不用选择gb2312,我都用的是utf8,当然也需要按照以上步骤进行设置,肯定不会出现乱码!个人喜好,大家随意!

之前我试了很多方法,比如在/etc/sysconfig/i18n文件中改系统字体,在/etc/mycnf中[mysqld]字段后加入如下语句default-character-set=gb2312等等,我觉得没有必要。

以上步骤看似很简单,但是我的失败教训,也是我的成功心得。现在与大家分享,看后有收获的,不顶一下就是你的不厚道了!

a,b是两个字符型变量,所以这里的176、219就不再是整数了,而是ascii码,ascii码里176对应的字符是“°”,219对应的字符是“Û”,所以输出为:

Û°°°Û

°Û°Û°

°°Û°°

°Û°Û°

Û°°°Û

这个算是个字符画“X”,并非程序出错产生乱码

这个例子的目的应该是让你了解ascii码并熟悉printf的用法

输入的字符串长度是多少呢?scanf这个函数在连续输入不同类型的时候注意了,一不小心就出问题。因为%s! %s 很有可能把后面的元素也包含进去了,这样,你其实只有

p1->name

或者

p1->type

初始化了,后面的变量全部没有初始化,建议调试一下,看看这些结构体成员都是什么值。我想很可能其中一个字符串类似:

"棉袜大号,122983"

之类的,也就是把本来给 double 的也输入进来。如果字符串有空格,就会被拆成两个了。因此,我的做法是:

全部调用 gets 函数,一次回车输入一行,而不是全部用 scanf来做。至于乱码,是因为最后一个字符串变量没有初始化,于是后面没有\0,程序把内存中的乱码写进文件,直到偶然遇到\0为之。这样的程序是不稳定的。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » linux 下运行C的程序,终端运行出现乱码,该怎么解决?!!

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情