linux下c编程的问题?急求答案!!!!!!!!!

#include<stdio.h>structstudent{charname[9];charsex[5];floatscore;charaddr[30];};main(... #include <stdio.h>
struct student
{
char name[9];
char sex[5];
float score;
char addr[30];
};
main()
{
FILE *fp1,*fp2;
int i,k,n,j;
struct student s[300],temp;
char *myfile1="file1.txt";
char *myfile2="file2.txt";
if((fp1=fopen(myfile1,"wb"))==NULL)
{printf("Open fail!\n");
//exit(0);
}
printf("Please input the value of n:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{printf("Please input :name sex score address\n");
scanf("%s%s%f%s",&s[i].name,&s[i].sex,&s[i].score,&s[i].addr);
printf("%s%s%4.2f%s\n",s[i].name,s[i].sex,s[i].score,s[i].addr);
fwrite(s,sizeof(struct student),1,fp1);
}
printf("over!\n");
fclose(fp1);
if((fp1=fopen(myfile1,"r"))==NULL)
{
printf("%s open fail!\n",myfile1);
//exit(0);
}
if((fp2=fopen(myfile2,"wb"))==NULL)
{
printf("%s open fail!\n",myfile2);
//exit(0);
}
fread(&s,sizeof(struct student),1,fp1);
fwrite(&s,sizeof(struct student),1,fp2);
fclose(fp1);
fclose(fp2);
if((fp2=fopen(myfile2,"r"))==NULL)
{
printf("%s open fail!\n",myfile2);
//exit(0);
}
for(j=0;j<n;j++)
{
for(k=0;k<n-j;k++)
if(s[k].score>s[k+1].score)
{
temp=s[k];
s[k]=s[k+1];
s[k+1]=temp;
}
}
for(i=1;i<=n;i++)
{
fread(&s,sizeof(struct student),1,fp2);
printf("%s%s%f%s\n",s[i].name,s[i].sex,s[i].score,s[i].addr);
}

}

此程序可以运行,但没有正确写进文件,忘高手尽快解决!谢了!
写进的是乱七八糟的东西!
展开
 我来答
chris8567
2007-12-10 · TA获得超过2781个赞
知道大有可为答主
回答量:1478
采纳率:0%
帮助的人:835万
展开全部
没有正确写进文件什么意思?
是指打开txt文件不能正确显示吗? 你用二进制的数据写进文件的,当然没法用ascii文档的格式输出了阿。
还有fwrite是s[i]而不是s吧??
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式