| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 520 人关注过本帖
标题:文件随机读写的问题
只看楼主 加入收藏
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
文件随机读写的问题
这个问题是谭浩强老师的<C程序设计>第四版中的 例 10.6;
题目是: 在磁盘文件上存有10个学生的数据,要求将第1, 3, 5, 7, 9个学生的数据输入计算机,并在屏幕上显示出来.
代码如下:
程序代码:
#include <stdio.h>
#include <stdlib.h>

struct student_type{
    char name[10];
    int  num;
    int  age;
    char addr[10];
}stud[10];

int main(void)
{
    int i, n;
    FILE *fp;
    if((fp = fopen("stu.dat", "rb")) == NULL){     //有建立此文件,文件内容也没问题,是按书上例题建的,有读文件显示过.
        printf("cannot open file\n");
        exit(0);
    }
    for(i = 0; i < 10; i+=2){      //讀第1, 3, 5, 7,9個學生的數據
        fseek(fp, i*sizeof(struct student_type), 0);     // 移动文件位置标记
        fread(&stud[i], sizeof(struct student_type), 1, fp);    //读一个数据块到结构体变量.
        printf("%-10s %4d %4d %-15s\n", stud[i].name, stud[i].num, stud[i].age, stud[i].addr);    //在屏幕显示
    }
    fclose(fp);
    return 0;
}
以上是书上的原码,(我没对出错误,就当是原码吧.)
编译 0 错误, 0 警告.
运行结果只有第一个数据是对的,后面的都乱七八糟, 我菜鸟一枚,肯求前辈指教,不胜感激!


搜索更多相关主题的帖子: C程序设计 计算机 
2013-07-29 10:27
jk_love
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:1
帖 子:196
专家分:965
注 册:2012-10-22
收藏
得分:20 
一般都是stu.dat的内容和结构问题
2013-07-29 11:19
pangshch
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:2
帖 子:443
专家分:1966
注 册:2013-4-9
收藏
得分:0 
回复 2楼 jk_love
我把两个程序代码合并到一起,运行就没有问题了,看来是文件有问题.
2013-07-29 15:27
快速回复:文件随机读写的问题
数据加载中...
 
   



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

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