菜鸟问题之 重载流插入和流提取运算符

来源:百度知道 编辑:UC知道 时间:2024/05/11 21:15:04
static float price=10;
static float max;
static float min;
static float open;
static float close;
。。。。。
void StoreMyCountFile(void)
{
try
{
CFile file(_T("count.txt"), CFile::modeReadWrite);
CArchive ar(&file,CArchive::store);
ar<<count<<open<<close<<price<<max<<min;
}
catch(CFileException* e)
{
e->ReportError();
e->Delete();
}
}

这里的ar<<count<<open<<close<<price<<max<<min;要如何理解,是按顺序把二进制存到文件里吗?如果多次调用这个函数的话,是覆盖还是追加?
还有读取的时候ar>>count>>open>>close>>price>>max>>min;又如何理解,文件里都是二进制数据,如何判断哪几位是count的,哪几位是open的
是追加吗,是覆盖的吧,我存了N遍,文件大小没有增加啊,就是一遍的大小,还有是追加的话,读取的时候怎么判断读取那一次的值?

很基本的问题。类似于cout<<与cin>>
ar<<count<<open<<close<<price<<max<<min;是按顺序存到文件里,是追加,ar对象自动把每个变量分隔开。
ar>>count>>open>>close>>price>>max>>min;是依次读取文件中被ar对象隔开的值到上述变量中。

你读的时候,要根据你存的顺序,数据类型还要一致,否则是要出错的,即使编译无错误,你写出来的程序肯定不可能正常。