| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 519 人关注过本帖
标题:求助:关于fopen()函数的问题
只看楼主 加入收藏
lx677677
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2011-5-31
结帖率:75%
收藏
已结贴  问题点数:10 回复次数:4 
求助:关于fopen()函数的问题
fopen()能不能按照"a+"的方式读取 *.dat文件,然后使用循环,将数据逐个读取?
还是 *.dat 文件只能用二进制的方式读写?。

另外问个问题

    if(newornot)
    {
        tail=(pbook)malloc(sizeof(book));
        head->next=tail;
        tail->pioneer=head;
        tail->next=NULL;

        while(!feof(fp))
        {
            if((newdata=(pbook)malloc(sizeof(book)))!=NULL)
                printf("1\n");
            newdata->next=tail;
            newdata->pioneer=tail->pioneer;
            tail->pioneer->next=newdata;
            tail->pioneer=newdata;

            fscanf(fp,"%d%s%d%s%d",&booknum,bookname,&studentnum,studentname,&lentout);
            newdata->num=booknum;
            strcpy(newdata->name,bookname);
            newdata->stu_num=studentnum;
            strcpy(newdata->stu_name,studentname);
            newdata->lent_out=lentout;

            count++;
        }
    }


执行这个循环的时候,第一遍没有出错,屏幕能显示出“1”,但是到了第二遍就不行了,第二遍没有显示出“1”,而且还出现

Windows 已在 a.exe 中触发一个断点。

其原因可能是堆被损坏,这说明 a.exe 中或它所加载的任何 DLL 中有 Bug。

原因也可能是用户在 a.exe 具有焦点时按下了 F12。

输出窗口可能提供了更多诊断信息。

这个错误信息。

我是以"a+"方式打开 *.dat 文件的
搜索更多相关主题的帖子: dat文件 二进制 
2011-06-01 21:32
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:10 
没看懂你的意思

                                         
===========深入<----------------->浅出============
2011-06-01 21:39
lx677677
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2011-5-31
收藏
得分:0 
以下是引用laoyang103在2011-6-1 21:39:15的发言:

没看懂你的意思


第一个问题就是说 *.dat的文件 能不能用"a+"的方式打开读取,比如说  fopen("a.dat","a+"), 然后用fscanf(fp,%d,data)来逐个写入

第二个问题是我的程序出错了,我不知道怎样解决
2011-06-01 21:42
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
"a+"的方式打开 fscanf(fp,%d,data) 这个吧文件数据写入内存

把你的完整代码贴出来

                                         
===========深入<----------------->浅出============
2011-06-04 11:29
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
使用ab+模式

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2011-06-04 11:31
快速回复:求助:关于fopen()函数的问题
数据加载中...
 
   



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

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