标题:c语言文件
只看楼主
编程帝王彦海
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2013-5-4
结帖率:0
已结贴  问题点数:20 回复次数:4 
c语言文件
#include <stdio.h>
#define SIZE 4
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_list.txt","wb"))==NULL)
 {
  printf("can not 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);
}
 
void main()
{
 int i;
 for(i=0;i<SIZE;i++)
 {
  scanf("%s%d%d%s",stud[i].name,&stud[i].num,&stud[i].age,stud[i].addr);
 }
 save();
}
输入 Zhang 1001 19 room.1
     Fun 1002 20 room.2
     Tan 1003 21 room.3
     ling 1004 22 room.4
后结果是zhang       ?     room.1          fun         ?     room.2          tan         ?     room.3          ling        ?     room.4  呢?        
搜索更多相关主题的帖子: include return c语言 write 
2013-09-24 16:56
剑侠时代2013
Rank: 2
来 自:北京东燕郊经济开发
等 级:论坛游民
帖 子:6
专家分:10
注 册:2013-9-23
得分:5 
你可以换一个函数使用啊
把 if(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1)
  {
   printf("file write error\n");
  }
换成
fprintf(fp,"%s %d %d %s\n",stud[i].name,stud[i].num,stud[i].age,stud[i].addr);
可以用的
关键注意的是fwrite是以二进制储存的,用的时候方便,但是想通过程序读出来,应该不简单。
建议:在这儿用fprintf()

[ 本帖最后由 剑侠时代2013 于 2013-9-24 17:42 编辑 ]
2013-09-24 17:29
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
得分:5 
fopen("stu_list.txt","w+")
用文本文件试试

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2013-09-24 17:59
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:5 
制表不对啊
2013-09-24 18:17
米兰的大铁匠
Rank: 2
来 自:天外
等 级:论坛游民
帖 子:61
专家分:84
注 册:2013-7-16
得分:5 
制表
2013-09-25 20:57



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




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

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