c语言编译运行乱码是什么原因? c语言转码为gbk
c语言转码为gbk ">
C语言出现乱码
有两个问题:
一、变量a是float型,用%d输入输出会出错,可以考虑把变量d定义成int型;
二、姓名是字符串,不是字符,可以考虑用字符数组来存储。
修改如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a;
float b,c;
char d[10];
printf("请输入你的姓名:\n");
gets(d);
printf("请输入你的年龄:\n");
scanf("%d",&a);
printf("请输入你的身高m:\n");
scanf("%f",&b);
printf("请输入你的体重kg:\n");
scanf("%f",&c); //以下代码测试输入的正确性
printf("姓名:%s\n",d);
printf("年龄:%d\n",a);
printf("身高:%.2fm\n",b);
printf("体重:%.2fkg\n",c);
return 0;
}
c语言运行结果乱码怎么解决?
你程序中max和min都没有初始值,应该给max赋一个比所有输入的数都小的值,给min赋一个背所有输入的数都大值
C语言编程出现汉字输出乱码现象
//因为不知道你具体的功能流程,所以我只能先就语法来提下代码的问题
int cha()
{
//int a[N],b[N];
//int i=0,x,v1,v2;
char a[N][M] = {0};//M为字符串最大长度加1,根据要求设置
int b[N] = {0};
int i=0,x,v2;
char v1[M] = {0};
FILE *f;
if((f=fopen("D:\123.txt","r"))==NULL)
{
printf("没有足够的数据显示!(返回上一级菜单1号选择)\n");return 0;
}
while(!feof(f))
{
//fscanf(f,"%s%d",&a[i],&b[i]);
fscanf(f,"%s%d", a[i],&b[i]);//%s说明输入的是字符串,不能用int型变量接收,要用char *型的
i++;
}
fclose(f);//后续没用到,最好将文件关闭
struct t
{
char a1[10];
int a2;
}t;
printf("请输入您所要录入的站点代号:\n");
scanf("%d",&i);
printf("请输入您所要录入的站点名称:\n");
//scanf("%s",&v1);
scanf("%s",v1);
printf("请输入当前站点到前一站点的价格:\n");
scanf("%d",&v2);
FILE *fp;
fp=fopen("D:\123.txt","r+");
//a[i]=v1;
strcpy(a[i], v1);
b[i]=v2;
//fprintf(fp,"%s",&a[i]);
fprintf(fp,"%s",a[i]);
fprintf(fp,"%5d\n",b[i]);
fclose(fp);
}
C语言,字符串输出是乱码是怎么回事?
字符串使用前请使用清空语句把垃圾内存清理成'\0',也就是0x00(0):
memset(str2, 0x00, sizeof(str2));
当然,也可以在声明的时候进行初始化:
char str2[20] = {0};
这句也能实现同样的效果。这是C语言习惯,务必养成!
'\0'是字符串结束符,每当解释器看到这'\0'才会认为字符串终止,而你的程序明显没有字符串结束符,所以连同垃圾内存一起读出来了。“烫烫。。”等就是垃圾内存。
不明白欢迎追问