额,关于C的显示乱码的问题~急

[复制链接]
查看11 | 回复1 | 2010-12-29 22:41:48 | 显示全部楼层 |阅读模式
做的一个程序,别的部分都没啥毛病,就是选择功能显示已输入的全部信息的时候,会出现乱码,好多好多的烫= =,还有一些别的烂七八糟的。。。
这程序还有一个功能就是把内容保存到文件,保存能成功保存,而且txt里面也不是乱码,是正确的结果。。就不知道为啥运行的时候显示信息部分是乱码- -
于是举个例子,比如这个。。。运行出来这部分功能是乱码,那么是这里的问题么?
希望能帮忙改改~谢谢
void Display(STUDENT*data,int len)//显示信息
{
int i;
system("cls");
printf("%8s","学号");
printf("%8s","姓名");
printf("%10s","C语言");
printf("%8s","英语");
printf("%8s","数学");
printf("%12s","平均分");
printf("%10s","总分");
putchar('\n');
for(i=0;i<len;i++)
{
printf("%8d",data.no);
printf("%8s",data.name);
printf("%10.1lfd",data.C_Language);
printf("%8.1lfd",data.English);
printf("%8.1lfd",data.Math);
printf("%12.1lfd",data.average);
printf("%10.1lfd",data.totle);
}
putchar('\n');

printf("按回车键继续");
getchar();
getchar();
}
额 是说直接把memset(data, 0, sizeof(STUDENT)) ;这句加在data赋值之前么。。。直接加上面就可以了么- -。。data赋值长什么样子- -。。。(囧)- -。。。我快晕了- -。。。编程很烂- -。。。很烂很烂。。。- -这次只是帮别人改程序改成和题目要求一样的- -。。但是自己编程也不咋地- -麻烦解答下。。。完全小白状态的我- -
————————————
于是我自己又看了一下- -不知道是不是这个意思。。是不是应该在STUDENT data[MAXN];这句后加那个。。。- -因为我网上查了一下,貌似有在这个之后加的。。我加的是memset(data, 0, sizeof(struct student)*MAXN); 加了以后结果不出烫了,但是还是很乱,虽然能输出结果,但是格式什么的很纠结。。还会输出一大堆东西。。

回复

使用道具 举报

千问 | 2010-12-29 22:41:48 | 显示全部楼层
输错烫烫...是因为有一些不可见字符导致的,不是这个函数的问题,而是在你另外给data赋值的地方导致的。建议你在给data赋值之前memset(data, 0, sizeof(STUDENT)) 把那一片内存空间给清除一下。当然也可以一个字段一个字段的赋值。然后再试试另外: printf可以写长一些,比如 printf("%8s","学号"); printf("%8s","姓名");可以写成printf("%8s%8s","学号","姓名");
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行