// Ex3_8.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <cv.h>
#include <cvcam.h>
#include <cxcore.h>
#include <highgui.h>
#include <iostream>
#pragma comment(lib,"cv.lib")
#pragma comment(lib,"cvcam.lib")
#pragma comment(lib,"cxcore.lib")
#pragma comment(lib,"highgui.lib")
using namespace std;
typedef struct tagMyStruct
{
CvPoint m_Point;
CvRect m_Rect;
}SMyStruct;
int main(int argc, char* argv[])
{
/********************* 写部分 *********************/
{
SMyStruct szArray[] = {
{1,1,1,1,1,1},
{2,2,2,2,2,2},
{3,3,3,3,3,3},
{4,4,4,4,4,4},
{5,5,5,5,5,5},
{6,6,6,6,6,6},
{7,7,7,7,7,7},
{8,8,8,8,8,8},
{9,9,9,9,9,9},
{10,10,10,10,10,10} };
CvFileStorage *pStorage = cvOpenFileStorage("Test.xml",NULL,CV_STORAGE_WRITE);
assert(pStorage != NULL);
cvWriteRawData(pStorage,szArray,10,"6i");
cvReleaseFileStorage(&pStorage);
}
/******************* 读部分 ***********************/
{
SMyStruct szArray[10];
CvFileStorage *pStorage = cvOpenFileStorage("Test.xml",NULL,CV_STORAGE_READ);
assert(pStorage != NULL);
cvReadRawData(pStorage,cvGetRootFileNode(pStorage),szArray,"6i");
cvReleaseFileStorage(&pStorage);
for (int i = 0; i < 10; i++)
{
cout<<szArray[i].m_Point.x<<endl;
cout<<szArray[i].m_Point.y<<endl;
cout<<szArray[i].m_Rect.x<<endl;
cout<<szArray[i].m_Rect.x<<endl;
cout<<szArray[i].m_Rect.x<<endl;
cout<<szArray[i].m_Rect.x<<endl<<endl;
}
}
return 0;
}