| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 274 人关注过本帖
标题:求解一个关于 eof() 函数的问题
只看楼主 加入收藏
飞扬冲天
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:122
注 册:2011-10-21
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:2 
求解一个关于 eof() 函数的问题
我写得学生管理系统的构造函数,总是多读一个空的Student信息出来,有个和我一样问题的他把file.read((char *)End->name,15)加上了break,就可以了,这是为什么啊?难道eof()判断出问题了?
ManageStu::ManageStu()
{
    Head = new Student;   
    End = Head->Next = NULL;
    Choose[0] = &ManageStu::Print;
    Choose[1] = &ManageStu::AddStu;
    Choose[2] = &ManageStu::Modifiy;
    Choose[3] = &ManageStu::Search;
    Choose[4] = &ManageStu::DelStu;
   
   
    file.open("e:\\Student.txt",ios_base::in|ios_base::binary);
    if(!file);
    else
    {
        Head->Next = new Student;
        End = Head->Next;
        Student *p = End;
        file.seekg(0);
        while(!file.eof())
        {        
            if(!file.read((char *)End->name,15))
                break;
            file.read((char *)End->num,15);
            file.read((char *)&End->usual_score,sizeof(float));
            file.read((char *)&End->test_score,sizeof(float));
            End->Next = new Student;
            p = End;
            End = End->Next;
        }
        p->Next = NULL;
        delete End;
        End = p;
        file.clear() ;
    }
    file.close();
   
}
搜索更多相关主题的帖子: 管理系统 
2012-05-26 17:36
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
收藏
得分:20 
没看懂,不过....

eof()返回一个int类型值是-1,它永远返回这个.eof一般用法在一个输入结束的时候插入一个eof.
你的做法类似,用!符号加一个-1值在循环里作为条件.
2012-05-27 09:52
飞扬冲天
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:86
专家分:122
注 册:2011-10-21
收藏
得分:0 
回复 楼主 飞扬冲天
while(!file.eof())
         {        
             file.read((char *)End->name,15)
             file.read((char *)End->num,15);
             file.read((char *)&End->usual_score,sizeof(float));
             file.read((char *)&End->test_score,sizeof(float));
             End->Next = new Student;
             p = End;
             End = End->Next;
         }


但我如果把循环写成这样的话文件结尾的位置就不正常..多了一个空的节点出来
 
2012-05-30 20:54
快速回复:求解一个关于 eof() 函数的问题
数据加载中...
 
   



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

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