详解:C++ 输出类、结构体到文件
[来源] 达内 [编辑] 达内 [时间]2012-06-14
C++中怎么将我们自己定义的类或结构体输出到文件呢?
下面这个小程序演示怎么向文件输出结构体,并且从文件再读到结构体当中。
详解:C++ 输出类、结构体到文件
C++中怎么将我们自己定义的类或结构体输出到文件呢?
下面这个小程序演示怎么向文件输出结构体,并且从文件再读到结构体当中。
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
fstream File;
("QQ.txt",ios::out|ios::in|iosinary);// 二进制不是必须的,ios::in必须有,否则不能正确读
struct qqq // 自己定义的结构体
{
int a;
double b;
};
File.seekp(10);//seekp函数定位输出指针,假设定位到10这个位置
qqq *node=new qqq;
node->a=10;
node->b=199.199;
File.write((const char *)node,sizeof(qqq)); //将node指针强制转为成 char * 的指针。
qqq *newnode=new qqq;
File.seekg(10);//seekg函数定位输入指针,定位到10这个位置
((char *)newnode,sizeof(qqq)) //将newnode指针强制转为成 char * 的指针;
cout<<newnode->a<<endl<<newnode->b<<endl;
}
#include<fstream>
using namespace std;
int main()
{
fstream File;
("QQ.txt",ios::out|ios::in|iosinary);// 二进制不是必须的,ios::in必须有,否则不能正确读
struct qqq // 自己定义的结构体
{
int a;
double b;
};
File.seekp(10);//seekp函数定位输出指针,假设定位到10这个位置
qqq *node=new qqq;
node->a=10;
node->b=199.199;
File.write((const char *)node,sizeof(qqq)); //将node指针强制转为成 char * 的指针。
qqq *newnode=new qqq;
File.seekg(10);//seekg函数定位输入指针,定位到10这个位置
((char *)newnode,sizeof(qqq)) //将newnode指针强制转为成 char * 的指针;
cout<<newnode->a<<endl<<newnode->b<<endl;
}
其实也很简单啦,就是 强制转换指针类型。
这种方式也有局限,就是结构体的大小必须得固定,成员不能有变长的。