| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3116 人关注过本帖
标题:通过结构体保存的文件,输出到显示器是正确的,但是直接查看文件是乱码,为 ...
只看楼主 加入收藏
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
结帖率:92.86%
收藏
已结贴  问题点数:20 回复次数:20 
通过结构体保存的文件,输出到显示器是正确的,但是直接查看文件是乱码,为什么?要怎么改?
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct student
{
    char name[10];
    long num;
    char sex[10];
    int age;
    char adrr[10];
    int pay;
    char health[10];
    char classa[10];
}a[5];
struct jian
{
 char name[10];
 int pay;
}b[5];
void main()
{
 FILE *fp1,*fp2,*fp3;
 int i;
 fp1=fopen("x1.txt","wb");
 for(i=0;i<=4;i++)
 scanf("%s%ld%s%d%s%d%s%s",&a[i].name,&a[i].num,&a[i].sex,&a[i].age,&a[i].adrr,&a[i].pay,&a[i].health,&a[i].classa);
 for(i=0;i<5;i++)
  fwrite(&a[i],sizeof(struct student),1,fp1);
fclose(fp1);
//以上是把数据写入x1.txt
fp2=fopen("x1.txt","rb");
 for(i=0;i<=4;i++)
 {
     fread(&a[i],sizeof(struct student),1,fp2);
     strcpy(b[i].name,a[i].name);
     b[i].pay=a[i].pay;
 }
 fclose(fp2);
 //以上是从x1.txt读数据,赋给b[5]
 fp3=fopen("x22.txt","wb");
 for(i=0;i<=4;i++)
 {
 fwrite(&b[i],sizeof(struct jian),1,fp3);
 printf("%-10s%-5d\n",b[i].name,b[i].pay);
 }
 fclose(fp3);
 //把b[5]写入x22.txt
}
搜索更多相关主题的帖子: 显示器 include health 结构体 
2011-11-19 20:29
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
收藏
得分:0 
难道要把定义的空间沾满才能不是乱码?
2011-11-19 21:12
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:7 
在内存和文件中储存的都是二进制数据,不是供人眼看的“文本”。

授人以渔,不授人以鱼。
2011-11-19 21:15
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
收藏
得分:0 
以下是引用TonyDeng在2011-11-19 21:15:15的发言:

在内存和文件中储存的都是二进制数据,不是供人眼看的“文本”。
#include<stdio.h>
#include<stdlib.h>
void main()
{ FILE *fp;
 char ch,name[10];
 gets(name);
  fp=fopen(name,"w");
  ch=getchar();
while(ch!='\n')
  {
  fputc(ch,fp);
  ch=getchar();   
      
  }
  fclose(fp);
}

为什么这个可以呢
2011-11-20 13:19
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:7 
回复 4楼 xdh0817
0和'0'能是一回事吗?

总有那身价贱的人给作业贴回复完整的代码
2011-11-20 13:21
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
完全无视基础原理而急于写程序,这就是一个典型例子。很多初学者(包括若干已学者)都有这种毛病,这些人,你跟他讲原理时嫌你啰嗦,只要代码,但屡错屡犯,永远没长进。

[ 本帖最后由 TonyDeng 于 2011-11-20 13:25 编辑 ]

授人以渔,不授人以鱼。
2011-11-20 13:23
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
收藏
得分:0 
以下是引用TonyDeng在2011-11-20 13:23:32的发言:

完全无视基础原理而急于写程序,这就是一个典型例子。很多初学者(包括若干已学者)都有这种毛病,这些人,你跟他讲原理时嫌你啰嗦,只要代码,但屡错屡犯,永远没长进。
那你解释一下吧
2011-11-20 19:12
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
收藏
得分:0 
以下是引用TonyDeng在2011-11-20 13:23:32的发言:

完全无视基础原理而急于写程序,这就是一个典型例子。很多初学者(包括若干已学者)都有这种毛病,这些人,你跟他讲原理时嫌你啰嗦,只要代码,但屡错屡犯,永远没长进。
解释一下吧,不嫌你啰嗦~
2011-11-20 19:13
waterstar
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:5
帖 子:984
专家分:2810
注 册:2010-2-12
收藏
得分:7 
回复 6楼 TonyDeng
TonyDeng兄弟不用生气,这种情况我也遇到不少,没必要为那种人生气,不过为了那些真正想学好的人,我们的解释还是必要的

最近看到TonyDeng兄弟的回复,火气比较大啊,消消火

冰冻三尺,非一日之寒;士别三日,不足刮目相看!
2011-11-20 20:41
xdh0817
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:193
专家分:195
注 册:2011-10-20
收藏
得分:0 
回复 9楼 waterstar
请教了
2011-11-20 20:48
快速回复:通过结构体保存的文件,输出到显示器是正确的,但是直接查看文件是乱码 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051037 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved