标题:关于文件指针定位问题
只看楼主
呵呵呵。。
Rank: 2
等 级:论坛游民
帖 子:43
专家分:52
注 册:2010-6-11
结帖率:88.89%
 问题点数:0 回复次数:2 
关于文件指针定位问题
#include <stdio.h>
#include<stdlib.h>
#include<memory.h>
struct student_info
{
    char no[9];
    char name[10];
    char sex;
    int age;
    char depart[10];
}stu[3]={{"0001","wangfei",'M',19,"Computer"},{"0002","Daved",'F',18,"Math"},{"0003","baker",'M',22,"Computer"}};

void main()
{
    int i;
    FILE *fp;

    if((fp=fopen("C:\\Users\\bug\\Desktop\\Debug\\stu.dat","wb"))==NULL)//二进制打开创建一个文件
    {
        printf("cannot great format.txt\n");
        exit(0);
    }
    fwrite(stu,sizeof(struct student_info),3,fp);    //将学生信息写入文件fp

    rewind(fp);        //将文件位置指针置回到文件头
    memset(stu,0,3*sizeof(struct student_info));    //清除学生信息

    for(i=0;i<3;i+=2)    //读第1个和第3个学生信息到结构数组到结构数组stu中
    {
        fseek(fp,i*sizeof(struct student_info),SEEK_SET);    //文件位置指针定位
        fread(&stu[i],sizeof(struct student_info),1,fp);    //读取1个学生的信息
        printf("%12s%10s%3c%3d%10s\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].age,stu[i].depart);
    }

    fclose(fp);//关闭文件
}
搜索更多相关主题的帖子: 定位 name wangfei Desktop include 
2011-09-20 14:35
呵呵呵。。
Rank: 2
等 级:论坛游民
帖 子:43
专家分:52
注 册:2010-6-11
得分:0 
for(i=0;i<3;i+=2)    //读第1个和第3个学生信息到结构数组到结构数组stu中
    {
        fseek(fp,i*sizeof(struct student_info),SEEK_SET);    //文件位置指针定位
           //读取1个学生的信息
        printf("%12s%10s%3c%3d%10s\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].age,stu[i].depart);
    }
执行到这里的 fread(&stu[i],sizeof(struct student_info),1,fp);读不进数据,为什么,
2011-09-20 14:36
fragileeye
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:107
专家分:387
注 册:2011-5-21
得分:0 
if((fp=fopen("C:\\Users\\bug\\Desktop\\Debug\\stu.dat","wb"))==NULL)//二进制打开创建一个文件
fread(&stu[i],sizeof(struct student_info),1,fp);    //读取1个学生的信息
看这两句。。注意“wb”
2011-09-20 18:37



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




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

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