编程乱码问题,DEVC++中文乱码问题
乱码产生的原因分析
总结一下最近编程遇到的一些问题
问题描述
1.使用6.3版本DEVC++编码时候,保存源代码前需要对源代码进行编码,使用UTF-8或着其他编码产生的乱码问题
2.浮点型常量输入输出问题
原因分析:
乱码产生的原因就是编码和解码不一致导致
专业程序员不都是UTF-8编码吗?为何DEVC++用中文编码会乱码哪?
DEVC++在检测到中文时,会给你推荐使用UTF-8编码这时候你如果点是,你的编码变转换成了UTF-8;
DEVC++,的运行窗口解码默认以GBK格式解码,编码是UTF-8, 编码界面不一致不乱码才怪
用UTF-8编码程序,最后解码过程使用GBK格式解码
printf("我们是中国人\n")
输出结果:鎮ㄨ緭鍏ョ殑鏁颁负0
解决方案:
DEVC++,的运行窗口解码默认以GBK格式解码,那么我们用GKB格式进行编码不就完美解决中文乱码的情况,当然也可以使用ANSI编码,这个ANSI就比较神奇了想知道原因的可以打开下面的这个链接https://www.cnblogs.com/malecrab/p/5300486.html
这个是乱码原因图片分析 ,让你知道乱码出现的原因
用ANSI在编码适合出现中文一般回弹窗说是否转化为UTF-8编码,点否就行;
嫌弃一下下点太麻烦
方法二:如果还是乱码可以用GBK编码, 1.点击 工具------编译选项
2.在编译器加入命令打勾
3.填入下列命令 -fexec-charset=gbk
4.重新编译
该方法可能导致中文报错,就是在调试的时候显示错误(一般只要源代码里面有中文就会报错),这样的话把这行命令删除重新编译一下即可;
程序员在开发中,肯定要与数据打交道,很多时候遇到乱码,或者通信时,或者读写数据时,一头雾水,根本原因就是因为没有搞明白字符集,可以看一下下面的B站讲解视频
https://www.bilibili.com/video/BV1xD4y1y7yc/?is_story_h5=false&p=1&share_from=ugc&share_medium=android&share_plat=android&share_session_id=9e0f1efc-aea1-4bba-a6e1-d6a40d46ab4d&share_source=WEIXIN&share_tag=s_i×tamp=1665397898&unique_k=bY5rCl9https://www.bilibili.com/video/BV1xD4y1y7yc/?is_story_h5=false&p=1&share_from=ugc&share_medium=android&share_plat=android&share_session_id=9e0f1efc-aea1-4bba-a6e1-d6a40d46ab4d&share_source=WEIXIN&share_tag=s_i×tamp=1665397898&unique_k=bY5rCl9
在浮点型类型中遇到的问题
double float 都是浮点型 double双精度 float单精度
#include<stdio.h>
int main()
{
float xiaoshu;
printf("请输入一个小数\n");
scanf("%f",&xiaoshu);
printf("您输入的小数为%f\n",xiaoshu);
return 0;
}
输入一个1
输出1.000000
float没问题
那么double
#include<stdio.h>
int main()
{
double xiaoshu;
printf("请输入一个小数\n");
scanf("%f",&xiaoshu);
printf("您输入的小数为%f\n",xiaoshu);
return 0;
}
输入1
输出0.000000
查了一下 原来double输入需要用%lf
#include<stdio.h>
int main()
{
double xiaoshu;
printf("请输入一个小数\n");
scanf("%lf",&xiaoshu);
printf("您输入的小数为%f\n",xiaoshu);
return 0;
}
这样输出结果就ok了
专门查了一下
输入时:
float型输入用%f
double型输入用%lf
输出时最好是都用%f输出
在G++中,double类型若用%lf输出可能会错,
而在C++中,double类型用%lf输出是正确的
总结
scanf输入 double 用%lf float 用%f
printf输出 都用%f
更多推荐
所有评论(0)