1. 首页 > 科技

c语言编译运行乱码是什么原因? c语言转码为gbk

c语言编译运行乱码是什么原因?<span class=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'才会认为字符串终止,而你的程序明显没有字符串结束符,所以连同垃圾内存一起读出来了。“烫烫。。”等就是垃圾内存。

不明白欢迎追问