| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 697 人关注过本帖
标题:读写文件的结果不对
只看楼主 加入收藏
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
快速回复:读写文件的结果不对
数据加载中...
 
   



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

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