| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 256 人关注过本帖
标题:第一次用rewind失败了
只看楼主 加入收藏
njzhangyuhao
Rank: 2
等 级:论坛游民
帖 子:197
专家分:35
注 册:2010-11-20
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
第一次用rewind失败了
编译通过 显示乱码
#include<stdio.h>
#include<stdlib.h>
main()
{
 struct stu
 {
  int num;
  char a[10];
  char b;
  int gra;
 }b[4],a[4]={{0,"tom",'m',90},{1,"nancy",'w',78},{2,"mike",'m',23},{3,"jason",'m',89}};
 FILE *fp;
 int n;
  if((fp=fopen("file4","w"))==NULL)
  {
   printf("open error\n");
   exit(0);
  }
  for(n=0;n<4;n++)
   fwrite(&a[n],sizeof(struct stu),1,fp);
  rewind(fp);
  printf("num\tname\tsex\tgrade\n");
  for(n=0;n<4;n++)
  {
   fread(&b[n],sizeof(struct stu),1,fp);
   printf("%d\t%s\t%c\t%d\n",b[n].num,b[n].a,b[n].b,b[n].gra);
  }
  if(fclose(fp))
  {
   printf("close error\n");
   exit(0);
  }
}

2011-03-06 17:42
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:10 
if((fp = fopen("file4","wb+")) == NULL)
{
}

这样就行了,

[ 本帖最后由 BlueGuy 于 2011-3-6 18:31 编辑 ]

我就是真命天子,顺我者生,逆我者死!
2011-03-06 18:29
BlueGuy
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:29
帖 子:4476
专家分:4055
注 册:2009-4-18
收藏
得分:10 
刚写了一段记录源码,也给你作为参考

#include <stdio.h>
#include <string.h>

typedef struct bgActorRecord
{
    int lv;
    int hp;
    int mp;
}BGActorRecord;

typedef BGActorRecord ActorRecord;

ActorRecord actorRecord;

void initActorRecord(void);

void getActorRecord(void);

void setActorRecord(void);

void deleteActorRecord(void);

int main(void)
{
   
    initActorRecord();
   
    actorRecord.lv = 1;
    actorRecord.hp = 2;
    actorRecord.mp = 3;
   
    setActorRecord();

    getActorRecord();
    printf("%d %d %d", actorRecord.lv, actorRecord.hp, actorRecord.mp);

    deleteActorRecord();

    getchar();

    return 0;
}


void initActorRecord(void)
{
    FILE* fp = NULL;
   
    fp = fopen("register", "rb+");
   
    if (fp == NULL)
    {
        memset(&actorRecord, 0, sizeof(actorRecord));
        
        fp = fopen("register", "w");
        
        fwrite(&actorRecord, sizeof(actorRecord), 1, fp);
        
        fclose(fp);
    }
}

void setActorRecord(void)
{
    FILE* fp = NULL;
   
    fp = fopen("register", "rb+");

    if (fp != NULL)
    {
        fwrite(&actorRecord, sizeof(actorRecord), 1, fp);
        fclose(fp);
    }
}

void getActorRecord(void)
{
    FILE* fp = NULL;
   
    fp = fopen("register", "rb+");

    if (fp != NULL)
    {
        fread(&actorRecord, sizeof(actorRecord), 1, fp);
        fclose(fp);
    }
}

void deleteActorRecord(void)
{
    FILE* fp = NULL;
   
    fp = fopen("register", "rb+");

    if (fp != NULL)
    {
        memset(&actorRecord, 0, sizeof(actorRecord));

        fwrite(&actorRecord, sizeof(actorRecord), 1, fp);
        fclose(fp);
    }
}

我就是真命天子,顺我者生,逆我者死!
2011-03-06 18:33
快速回复:第一次用rewind失败了
数据加载中...
 
   



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

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