求助输入流成员函数write的问题
刚学的流,实在是不太明白,求指点。。我的函数是这样写的
#include<iostream>
#include<iomanip>
#include<fstream>
using namespace std;
struct Student{
char id[10];
char name[10];
int age;
};
int main(){
Student s1;
memset(&s1,0,sizeof(Student));
cin>>s1.id;
cin>>s1.name;
cin>>s1.age;
ofstream file("D:\\a.txt",ios_base::in|ios_base::binary);
file.seekp(0,ios::end);
file.write((char*)(&s1),sizeof(Student));
file.close();
ifstream ifile;
ifile.open("D:\\a.txt",ios_base::in|ios_base::binary);
ifile.seekg(sizeof(Student));
ifile.read((char*)&s1,sizeof(Student));
cout<<s1.id<<" "<<s1.name<<" "<<s1.age<<endl;
return 0;
}
结果:
状况1.在txt中没写入age
状况2.写n次后,txt中有n组数据(还是没有age的)cpp中read的结果总是的二组数据的(写一个数据的话read是当前数据)
状况3.id是10个字节的为什么输入:"1125100124 xa 20" read出的是"1125100124xa xa 20"?txt中的数据为1125100124xa?
求高人指点啊,本人C++学的超烂啊