C++问题, 新手求教

写了一个文件写入和读取的程序,编译通过,但运行时异常停止运行,小弟新手,求教#include"stdafx.h"#include<iostream>#include<fs... 写了一个文件写入和读取的程序,编译通过,但运行时异常停止运行,小弟新手,求教
#include "stdafx.h"
#include<iostream>
#include<fstream>
#include<string>

#include<vector>
#include<utility>
using namespace std;

class MyClass
{
public:
MyClass(int);
~MyClass();
int n;
};

MyClass::MyClass(int i)
{
n = i;
}

MyClass::~MyClass()
{
}

int _tmain(int argc, _TCHAR* argv[])
{
vector<MyClass> ms;
ms.push_back(*new MyClass(3));
ms.push_back(*new MyClass(2));
errno_t err;
FILE *fp;
if ((err = fopen_s(&fp, "writetest.txt", "w")) == 0){
fwrite(&ms, sizeof(ms), 1, fp);
cout << "t" << endl;
}
fclose(fp);
FILE *fptr;
vector<MyClass> mso;
if ((err = fopen_s(&fptr, "writetest.txt", "r")) == 0){
fread(&mso, sizeof(mso), 1, fptr);
cout << "t" << endl;
}
cout << mso[1].n << endl;
fclose(fptr);
return 0;
}
展开
 我来答
hellfara
2015-06-04 · TA获得超过200个赞
知道小有建树答主
回答量:307
采纳率:0%
帮助的人:241万
展开全部
fread只能读取文本或者二进制流数据,是不能自动转化为你的vector<MyClass>对象的。这样读只能是将vector对象的内存破坏掉了,后面一引用就会引起异常。
追问
请问我要怎么改呢?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式