C++文本文件读写的问题,文件的问题,文件一堆烫
界面显示可以,但是打开文件出现一些烫,如下:
张三 烫烫烫烫烫烫烫烫烫? 李四 烫烫烫烫烫烫烫烫烫? 〡 ( 王五 烫烫烫烫烫烫烫烫烫? X 刘六 烫烫烫烫烫烫烫烫烫? €慇
实在不懂,因为要做作业,憋了好几天了
#include <iostream>
#include <fstream>
using namespace std;
class Employee{
private:
int number ,age;
char name[20];
double sal;
public:
Employee(){}
Employee(int num,char* Name,int Age, double Salary){
number=num;
strcpy(this->name,Name);
age=Age;
sal=Salary;
}
char * getName(){
return name;
}
void setName(char * name){
strcpy(this->name,name);
}
void addSalary(int sa){
this->sal+=sa;
}
void display(){
cout<<number<<"\t"
<<name<<"\t"
<<age<<"\t"<<sal<<endl;
}
};
int main()
{
ofstream out;
out.open("Employee.txt",ios::out|ios::binary);
Employee e1(1,"张三",23,2320);
Employee e2(2,"李四",32,3210);
Employee e3(3,"王五",34,2220);
Employee e4(4,"刘六",27,1120);
out.write((char*)&e1,sizeof(e1));
out.write((char*)&e2,sizeof(e2));
out.write((char*)&e3,sizeof(e3));
out.write((char*)&e4,sizeof(e4));
Employee e5(3,"王五",40,2220);
out.seekp(2*sizeof(e1));
out.write((char*)&e5,sizeof(e5));
out.close();
ifstream in("Employee.txt",ios::in|ios::binary);
Employee s1;
cout<<"\n-------从文件中读出第3个人的数据-----\n\n";
in.seekg(2*(sizeof(s1)),ios::beg);
in.read((char*)&s1,sizeof(s1));
s1.display();
cout<<"\n---------从文件中读出全部的数据------\n\n";
in.seekg(0,ios::beg);
in.seekg(0,ios::beg);
while(in.read((char*)&s1,sizeof(s1))){
s1.display();
// in.read((char*)&s1,sizeof(s1));
}
/*char xm[10];
cin>>xm;
ifstream in("Employee.dat",ios::in|ios::binary);
Employee s1;
in.read(reinterpret_cast<char*>(&s1),sizeof(s1));
while(!in.eof()){
if(strcmp(s1.getName(),xm)==0){
s1.display();
}
in.read((char*)&s1,sizeof(s1));
}*/
in.close();
system("pause");
}