将一个类对象内存卡禁止写入修复文档,只存数据成员吗

C++中类的对象在文件中的存取问题-中国学网-中国IT综合门户网站
> C++中类的对象在文件中的存取问题
C++中类的对象在文件中的存取问题
转载 编辑:李强
为了帮助网友解决“C++中类的对象在文件中的存取问题”相关的问题,中国学网通过互联网对“C++中类的对象在文件中的存取问题”相关的解决方案进行了整理,用户详细问题包括:write((char*)&Karray[i]:~KeyManager() { fstream file(&quot,存了东西在文件里; };,就是我一旦运行完成; while (1) {=}KeyMkeyword.txt&quot.AddKey().read((char*)&k; i++) {keyword:KeyManager(){ Key k:& for (int i = 0; }class Key{ top++::; Karray[top] = KW:out);}编译没有问题; string question: Key Karray[100];}class KeyManager{string&& void AddKey();}Key: KeyManager();string K KW; top = -1: Key():setkey(string NewKey){ keyword = NewKey:AddKey(){ Key KW;using namespace std:.setkey(keyword); ~KeyManager(); &quot:; return 0;KeyM string getkey(), keyword); fstream file(& cout & void setkey(string NewKey),请输入关键字;}int main(){ KeyManager kw.close(): string keyword, sizeof(Karray[i])):in);;}void KeyM if (;public.close(); Karray[top] = top++; getline(cin:, ios!file) }:getkey(){ return keyword,就没办法再次运行.txt&quot:Key(){}void Kiostream& i &#include&lt::#include&}:;#include&lt, sizeof(k)),求高手看看我这个问题出在哪里;fstream&gt,具体解决方案如下:解决方案1:<解决方案2:非常感谢解决方案3:是不能这样直接将内种的信息存到文件中的,类中的虚函数指针是一个地址,每次运行的地址肯定是不通的通过对数据库的索引,我们还为您准备了:问:#include&iostream& #include&fstream& #include&string& using namespa...答:C#的类是一种对包括数据成员,函数成员和嵌套类型进行封装的数据结构。其中数据成员可以是常量,域。函数成员可以是方法,属性,索引器,事件,操作符,实例构建器,静态构建器,析构器。我们将在“第五讲 构造器与析构器”和“第六讲 域 方法属性...===========================================问:在C++中要将一个对象存储到文件中去,可是这个对象(类)中包含有string类...答:string内存是动态申请的内存,所以要存内容,就需要将string的内容全部存进去,然后读的时候才能不出错。 或者你就讲string的内容全部转成字符数组,然后将字符数组的整个内存块写到文件中。===========================================问:如题,我变了一个类,想存成文件。 void player::save() { f...答:首先,f===========================================问:请问如何在c++中用文件输入输出流存入和读取类对象数组?尤其是类对象中...答:ofstream outfile("test.txt",ios::binary); outfile.write((char *)t,sizeof(t)); outfile.close(); ifstream infile("test.txt",ios::binary); infile.read((char *)&t,sizeof(t)); //去掉上面一句中的 & 号即可.改为 //infile.read((char *)t...===========================================问:比如说这样一个类 class C { C* void set(); } 将这样的类对象...答:class t{ public: void set(){ float c,d; cin&&c&&d; a=c; b=d; } }; int main(){ st.set(); file * if((fptr=fopen("writetest.dat","wb"))!=NULL) fwrite(&st,sizeof(st),1,fptr); fclose(fptr); }===========================================问:比如说这样一个类 class C { C* void set(); } 将这样的类对象...答:你好,你这个要求可以通过MFC里面的串行化技术(Serialization技术)来实现: 在视图类中获得文档类指针的方法是:CFooDoc* pDoc = GerDocument(); 用此文档指针便可以操作文档类数据:m_ViewData = pDoc-&m_DocD 串行化的代码很简单,ar 是一...===========================================问:C++中,怎样从一个文件中(已存在)读取若干对象,然后保存到一个对象数组里?答:首先对你的问题进行分析,“怎样从一个文件中(已存在)读取若干对象,然后保存到一个对象数组里” 分为两大块,一个是读取已有文件,另一个是保存到对象数组中! 一、1.读取的文件有二进制文件和文本文件,这里介绍为了快速读取的二进制文件(缺点是...===========================================问:C++中,怎样从一个文件中(已存在)读取若干对象,然后保存到一个对象数组里?答:给你个参考http://blog.csdn.net/qq/article/details/ 从写类对象保存,到读取都有===========================================问:我定义了一个tStu类,有带参数的构造函数和不带参数的构造函数,在主函...答:第一种,是调用带参数的构造函数,显而易见,你定义的是一个带三个参数的构造函数,没问题,OK。 第二种,是调用的是不带参数的构造函数,不定义的话,编译器会默认一个,没问题,OK。 第三种,调用的是复制构造函数,没定义的话,编译系统也会...===========================================问题是你不知道写的数据类型,那么你读出来的数据就等于是没有用的。 你必须知道写的时候的数据结构,然后才能准确的读取数据。 一般情况下,对于一个未知数据类型的文件...===========================================文件的存取工作。TOLEStream在Axctrls.pas中实现。 2、Delphi语言为方便开发人员,... 具体的文件内容也可能五花八门, 譬如分支当中的某个文件是张图片、是一个字符串列...===========================================(C++)、编程软件C++这个词在中国大陆的程序员圈子中通常被读做"C加加",而西方的程... 用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展...===========================================存取器?你指getxxx,setxxx吗?没什么区别,只是有的时候命名习惯问题吧,还有就是功能比成员函数要简单,只是负责成员变量的存取而已,不过在java里是有区别的,java里那叫java...===========================================有可能是你的 H盘的 文件被损坏(中毒或者其他)。想恢复原来文件很难,只有重哪里弄来的再去弄份=========================================== 写入的时候 open xxxxxxx as1 put #1,12,s put #1,,CByte(0) &#39;重点 close 1 读取的时候 Private s As String * 100 Private s2 As String Sub command2_Click() Op...=========================================== 买本书看看,不要老是问别人.自己掌握很重要.===========================================存取的两种方式是顺序存取和随机存取,以字节流为存取单位的称为二进制文件,以变量为存取单位iede称为文本文件===========================================用StreamReader读取一个doc文件,转成byte[],写入数据库的image类型字段 读出来的时候一样,把流写成doc文件就行了===========================================其成员的默认存取权限是 在C++中用struct定义的结构体中,其成员的默认存取权限是===========================================
本文欢迎转载,转载请注明:转载自中国学网: []
用户还关注
可能有帮助文档和串行化让对象数据持久性的过程就称为串行化。我们用CArchive类达到这个目的..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
15、文档和串行化
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
认清事情的本质!
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
&3、文档串行化&&&&文档类的Serialize函数就是文档类提供的用来保存和加载数据的函数。MFC提供的文档/视类结构,相当于把将数据的处理和显示功能划分为不同的模块来完成。
&&&&[文件\新建]和[文件\打开]菜单项的命令响应函数都是在CWinApp类中提供。CWinApp类有1个成员变量:m_pDocManager,是指向CDocManager对象的指针,即,CWinApp负责管理文档管理器,而后者有一个文档模板指针链表:m_templateList,用来保存文档模板的指针,即文档管理器负责管理文档模板,而后者又是用来管理文档类、框架类和视类的,始终让这3个对象三位一体,一起为文档服务。4、可串行化的类&&&&用一个CArchive类保存一个对象的话,那么这个对象的类必须支持串行化。(1)从CObject派生类(或从CObject派生的某个类派生)(2)重写Serialize成员函数(3)使用DECLARE_SERIAL宏(在类声明中)。&&&&DECLARE_SERIAL(class_name)(4)定义不带参数的构造函数。(5)为类在实现文件中使用IMPLEMENT_SERIAL宏。IMPLEMENT_SERIAL(class_name,base_class_name,wSchema)&&&&用CObArray类对象来保存,加载对象(如图形),他就像一个容器。&&&&对于一个文档类对象来说,可以有多个视类对象与之相关。但是对于一个视类对象来说,它只能与一个文档类对象相关。virtualPOSITIONGetFirstViewPosition()POSITIONvirtualCView*GetNextView(POSITION&rPosition)return&rPositionrPositionrPositionPOSITIONrPositionNULL&&&&对象需要保存和读取的数据都需要在该对象的Serialize函数中确定。在设计可串行化的类时,在其内部确定需要串行化的数据。&&&&CObArray类支持串行化。CGraphicDoc对象的Serialize函数是由框架调用的,我们可以在其中调用CObArray的S函数。CDocument*GetDocument()e&NULL5、总结一下&&&&在MFC中,文档类负责管理数据,提供保存和加载数据的功能。视类负责数据的显示,以及给用户提供对数据的编辑和修改功能。&&&&MFC给我们提供Document/View结构,将一个应用程序所需要的“数据处理与显示”的函数空壳都设计好了,这些函数都是虚函数,我们可以在派生类中重写这些函数。有关文件读写的操作在CDocument的Serialize函数中进行,有关数据和图形显示的操作在CView的OnDraw函数中进行。我们在其派生类中,只需要去关注Serialize和OnDraw函数就可以了,其它的细节我们不需要去理会,程序就可以良好地运行。&&&&当我们按下“File/Open”,Application&Framework会激活文件打开对话框,让你指定文件名,然后自动调用CGraphicDoc::Serialize读取文件。Application&Framework还会调用CGraphicView::OnDraw,传递一个显示DC,让你重新绘制窗口内容。&&&&MFC给我们提供Document/View结构,是希望我们将精力放在数据结构的设计和数据显示的操作上,而不要把时间和精力花费在对象与对象之间、模块与模块之间的通信上。&&&&一个文档对象可以和多个视类对象相关联,而一个视类对象只能和一个文档对象相关联。6、文档对象的销毁在CDocument类中的OnNewDocument函数中来进行文档对象的删除。不管是新建文档,还是打开一个已有文档,都是先删除数据。DeleteContents函数是一个虚函数,主要是由框架调用,用来删除文档的数据,同时并不销毁CDocument对象本身。它是在文档将要被销毁前被调用,它也会在该文档对象在重复使用之前被调用,以确保文档是空的。所以我们只要得写这个函数就可以达到删除先前保存数据的删除。注意RemoveAll,RemoveAt用法的区别。
阅读(1049)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_084068',
blogTitle:'15、文档和串行化',
blogAbstract:'文档和串行化让对象数据持久性的过程就称为串行化。我们用CArchive类达到这个目的。可以把CArchive类对象想象成一种二进制流,像C++中的输入流和输出流一样。一个CArchive对象与个文件相关,并允许带缓存机制的数据写入和读出。输入输出流处理的是ASCII码字符序列,而一个CArchive对象以一种有效的、非冗余的格式处理二进制对象数据。',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:0,
publishTime:7,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'认清事情的本质!',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}C++文件操作总结_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
喜欢此文档的还喜欢
C++文件操作总结
全&#8203;面&#8203;的&#8203;介&#8203;绍&#8203;C&#8203;+&#8203;+&#8203;文&#8203;件&#8203;操&#8203;作&#8203;,&#8203;后&#8203;面&#8203;附&#8203;有&#8203;编&#8203;程&#8203;实&#8203;践&#8203;。&#8203;个&#8203;人&#8203;学&#8203;习&#8203;过&#8203;程&#8203;中&#8203;的&#8203;总&#8203;结&#8203;,&#8203;希&#8203;望&#8203;对&#8203;于&#8203;需&#8203;要&#8203;的&#8203;人&#8203;有&#8203;所&#8203;帮&#8203;助&#8203;!&#8203;!
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
C++面向对象程序设计教程课后习题答案.ppt176页
本文档一共被下载:
次 ,您可免费全文在线阅读后下载本文档
文档加载中...广告还剩秒
需要金币:150 &&
你可能关注的文档:
··········
··········
C++面向对象程序设计教程 第1章 C++程序设计基础 习题解答
一、选择题 二、编程题
C++面向对象程序设计教程 第2章 类和对象 习题解答
一、选择题 二、填空题
三、编程题 C++面向对象程序设计教程 第3章 模板 习题解答 一、选择题
二、填空题
三、编程题
C++面向对象程序设计教程 第4章 运算符重载 习题解答
一、选择题
二、填空题
三、编程题
C++面向对象程序设计教程 第5章 继承 习题解答
一、选择题
二、填空题
三、编程题
C++面向对象程序设计教程 第6章 多态性 习题解答
一、选择题
二、填空题
三、编程题
C++面向对象程序设计教程 第7章 输入输出流 习题解答
一、选择题
二、填空题
三、编程题
C++面向对象程序设计教程 第8章 C++的其它主题 习题解答 一、选择题
二、编程题
1.设计一个基类Shape包含成员函数Show
声明为纯虚函数。Shape类公有派生矩形类Rectangle和圆类Circle,分别定义Show
实现其主要几何元素的显示。使用抽象类Shape类型的指针,当它指向某个派生类的对象时,就可以通过它访问该对象的虚成员函数Show
…… // 声明圆形类 class Circle: public Shape
private: // 数据成员:
// 半径 public: // 公有函数:
Circle double r : radius r
// 构造函数
// 显示主要几何元素
PI * radius * ra
…… 1.设计一个基类Shape包含成员函数Show
声明为纯虚函数。Shape类公有派生矩形类Rectangle和圆类Circle,分别定义Show
实现其主要几何元素的显示。使用抽象类Shape类型的指针,当它指向某个派生类的对象时,就可以通过它访
正在加载中,请稍后...

我要回帖

更多关于 内存卡无法写入和删除 的文章

 

随机推荐