标题:题目:从键盘中输入10个学生的有关数据,然后把它们转存到磁盘文件中(我想 ...
只看楼主
小白czy
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-7-16
结帖率:100%
已结贴  问题点数:10 回复次数:7 
题目:从键盘中输入10个学生的有关数据,然后把它们转存到磁盘文件中(我想请问各位大神的是,为什么stu.dat文件中的学生学号和年龄是问号和方格)
搜索更多相关主题的帖子: 键盘 
2016-07-31 10:28
小白czy
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-7-16
得分:0 
#include<stdio.h>
#define SIZE 10
struct Student_type
{ char name[10];
  int num;
  int age;
  char addr[15];
}stud[SIZE];
void save()
{ FILE*fp;
  int i;
  if((fp=fopen("stu.dat","wb"))==NULL)
  { printf("cannot open file\n");
    return;
  }
  for(i=0;i<SIZE;i++)
      if(fwrite(&stud[i],sizeof(struct Student_type),1,fp)!=1)
          printf("file write error\n");
  fclose(fp);
}
int main()
{ int i;
  printf("Please enter data of students:\n");
  for(i=0;i<SIZE;i++)
      scanf("%s%d%d%s",stud[i].name,&stud[i].num,&stud[i].age,stud[i].addr);
  save();
  return 0;
}
2016-07-31 10:29
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:2 
因不是纯文本文件
2016-07-31 10:46
小白czy
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-7-16
得分:0 
回复 3楼 吹水佬
那怎么做才可以使他们显示出来呢
2016-07-31 10:56
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1728
专家分:3216
注 册:2015-12-2
得分:3 
用fprintf()应该可以
2016-07-31 11:32
小白czy
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-7-16
得分:0 
回复 5楼 ehszt
好的,我试试,谢谢你
2016-07-31 12:04
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
得分:5 
char 之类的字符型数据,用 fwrite() 写入文件后可以直接看到。
用fwrite写入的int; float;人无法直接看懂,但是它并没有错,因为那是给机器看的。改用 fprintf写入文件就能直接看懂。
2016-07-31 12:58
小白czy
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-7-16
得分:0 
回复 7楼 linlulu001
嗯嗯,好的,谢谢
2016-07-31 14:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-467390-1-1.html




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

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