标题:读写文件的结果不对
取消只看楼主
djy5043
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-5-9
 问题点数:0 回复次数:0 
读写文件的结果不对
以下我标红色的地方结果不对,看不出来哪里错了
#include<iostream>
#include<string>
#include<iomanip>
#include<fstream>
using namespace std;
class MyFriend{
private:
        unsigned int age;
        string name;
        string phone;
public:
        void getdata()   
        {
                cin>>name>>age>>phone;
        }
        void disp()     
        {
                cout<<left<<setw(12)<<name<<setw(8)<<age<<setw(12)<<phone<<endl;
        }
        string getname()
        {
                return name;
        }            
};
void outDate()    //输出数据,这一步有问题,不能显示文件中的信息
{
        ifstream input("myNote.txt");      
        MyFriend myfriend;
        cout<<left<<setw(12)<<"姓名"<<setw(8)<<"年龄"<<setw(12)<<"电话"<<endl;
        while(input)        
        {
                myfriend.disp();     
                input.read((char*)&myfriend,sizeof(myfriend));
        };
        input.close();
}
void searchByName()       //按姓名查找,输入姓名后没有显示信息
{
        string sname;
        bool ifFind=false;
        MyFriend myfriend;
        ifstream file("myNote.txt");  //file打开myNOte.dat
        if(file)
        {
                file.seekg(0);
                cout<<"输入要查询的姓名:";
                cin>>sname;
                cout<<left<<setw(12)<<"姓名"<<setw(8)<<"年龄"<<setw(12)<<"电话"<<endl;
                while(file.read((char*)&myfriend,sizeof(myfriend)))
                {
                        if(myfriend.getname()==sname)
                        {        
                                myfriend.disp();
                                ifFind=true;
                                break;
                        }
                        else if(!ifFind)
                                cout<<"对不起,没有找到!"<<endl;
                file.close();
                }
        }
        else cout<<"打开文件失败!";
}
void addDate()          //添加数据,数据没有按我预想的读入文件
{
        fstream file("myNote.dat",ios:ut|ios::app);     
        MyFriend myfriend;
        cout<<"添加数据(姓名 年龄 电话):";
        myfriend.getdata();
        file.write((char*)&myfriend,sizeof(myfriend));      
        file.close();
}
void main()
{
        int select;
        do
        {
                cout<<"选择1:输出数据 2:按姓名查找 3:添加数据 其它数字:退出";
                cin>>select;
                switch(select)
                {
                case 1utDate();break;
                case 2:searchByName();break;
                case 3:addDate();break;
                default:break;
                }
        }
        while(select==1||select==2||select==3||select==4);
}
搜索更多相关主题的帖子: string include name phone 文件 
2008-05-03 20:27



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




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

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