注册 登录
编程论坛 C++教室

为什么数据读不全,

未未来 发布于 2013-07-12 18:13, 508 次点击
程序代码:
fstream inout("1.dat",fstream::in|fstream::out);
    fr *head,*p1,*p2;
    p1=p2=new fr;
  inout>>p1->name>>p2->numb;
    head=NULL;
    int n=0;
    while(!inout.eof()){
        ++n;
        if(n==1)head=p1;
        else p2->next=p1;
        p2=p1;
        p1=new fr;
   inout>>p1->name>>p2->numb;
    }p2->next=NULL;
   
inout.close();



1.dat
jim 18228372839  
tom 13729492392

从1.dat里读去数据 建立链表
;为什么建立的链表只有第一组数据 jim 18228372839
。。在dat文件中 eof()的位置在哪里。
8 回复
#2
未未来2013-07-12 19:20
inout>>p1->name>>p2->numb; 改为 inout>>p1->name>>p1->numb;
#3
未未来2013-07-12 23:55
程序代码:
    cout<<"请输入你想打开的电话簿文件代码!"<<endl;
    cin>>x;
    fstream inout(x.c_str(),fstream::in|fstream::out);
    fr *head,*p1,*p2;
   
    int n=0;
     while(!inout.eof()){
        ++n;
        p1=new fr;
   inout>>p1->name>>p1->numb;
        if(n==1){p1->next=NULL;head=p1;}
        else p2->next=p1;
        p2=p1;

    }p2->next=NULL;

果断改成这样,就可以了  但是求解释啊
#4
peach54602013-07-13 05:41
F10+F11
#5
未未来2013-07-13 12:56
回复 4楼 peach5460
啥意思
#6
peach54602013-07-13 15:18
以下是引用未未来在2013-7-13 12:56:46的发言:

啥意思


F10和F11是VS的调试按钮
#7
未未来2013-07-13 16:40
回复 6楼 peach5460
额,我用cfree呢、
#8
peach54602013-07-13 16:47
哦,那页可以调试啊
我问你一个问题,这个程序你看不懂,你自己尝试调过没?
还是不管三七二十一,往论坛发帖子?
#9
未未来2013-07-13 16:55
回复 8楼 peach5460
这个程序是我自己写的课设,感觉文件的读取真是博大精深,调试了呀,
1