C语言出现 烫烫的乱码 求助求助!!!!
# include"stdio.h"
# include"string.h"
void sortname()
{
struct student
{char name[20];
char num[20];
char donum[20];
char qq[10];
char telenum[20];
}stu[100],stu1[1];
FILE * fp;
int i = 0,j,k,n;
if((fp = fopen("e:\\1.txt","r")) == NULL)
{ printf("不能打开文件\n");
exit(0);
}
while(! feof(fp))
{ fscanf(fp,"%s%s%s%s%s",stu[i].name,stu[i].num,stu[i].donum,stu[i].qq,stu[i].telenum);
i++;
}
for(j = 0;j < i-1;j++)
{ for(k = j+1; k < i;k++)
if(strcmp(stu[j].name,stu[k].name) > 0)
{ stu1[0] = stu[j];
stu[j] = stu[k];
stu[k] =stu1[0];
}
}
fclose(fp);
if((fp = fopen("e:\\1.txt","w")) == NULL)
{ printf("不能打开文件\n");
exit(0);
}
for(n = 0; n < i; n++)
fprintf(fp,"%s %s %s %s %s\n",stu[n].name,stu[n].num,stu[n].donum,stu[n].qq,stu[n].telenum);
fclose(fp);
}
main()
{
sortname();
}
[解决办法]
ZeroMemory
[解决办法]
对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。啊 GBK:0xB0 0xA1,Unicode-16 LE:0x4A 0x55,Unicode-16 BE:0x55 0x4A,UTF-8:0xE5 0x95 0x8A
[解决办法]
使用前先ZeroMemory一下 或者是加个‘\0’
[解决办法]
内存没有初始化嘛~
方法1:二楼说的那样memset一下,例如:memset(a, 0, sizeof(a);
方法2:初始化一下结构体的值,例如struct student stu[100] = {NULL};