主题:文件读写错误
以下我标红色的地方结果不对,看不出来哪里错了
#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() //输出数据[color=FF0000],[color=FF0000]这一步有问题,不能显示文件中的信息 [/color][/color]
{
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() //按姓名查找,[color=FF0000]输入姓名后没有显示信息[/color]
{
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() //添加数据,[color=FF0000]数据没有按我预想的读入文件[/color]{
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);
}
#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() //输出数据[color=FF0000],[color=FF0000]这一步有问题,不能显示文件中的信息 [/color][/color]
{
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() //按姓名查找,[color=FF0000]输入姓名后没有显示信息[/color]
{
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() //添加数据,[color=FF0000]数据没有按我预想的读入文件[/color]{
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);
}