opencv文件读写(二)使用多种方式及用法
2016-05-01 22:30
399 查看
//---------------{}的使用------------------- //总的来说就是一个映射加了一个若干个小的映射 FileStorage filefr("mydata.yml",FileStorage::WRITE); file<<"hello"; //建立hello的标签 file<<"{"<<"count"<<count<<"id"<<2<<"name"<<"jiajia"<<"}"; //标签里的数据(键--值的方式) file.release(); //文件打开测试 FileStorage filetest("mydata.yml",FileStorage::READ); //第一种访问方式(文件节点) FileNode fn=filetest["hello"]; //打开标签 cout<<(double)fn["count"]<<"\t"<<(int)fn["id"]<<endl; //文件节点访问方式 //第二种访问方式(纯标签) cout<<(double)filetest["hello"]["count"]<<"\t"<<(int)filetest["hello"]["id"]<<"\t"<<(string)filetest["hello"]["name"]<<endl; //双标签访问方式 //类似二维数组的访问方式 filetest.release(); //--------------------------[]的使用------------------- //总的来说就是是一个数组加了一个标签 FileStorage file1("mydata2.yml",FileStorage::WRITE); file1<<"hello"; file1<<"["<<1<<2<<3<<4<<"]"; //[]实际上就是数组 file1.release(); //显示测试 FileStorage file1read("mydata2.yml",FileStorage::READ); //cout<<(int)file1read["hello"][0]<<"\t"<<(int)file1read["hello"][1]; for(int i=0;i<4;i++) //完全数组的方式访问 cout<<(int)file1read["hello"][i]<<" "; //------------------------普通映射------------------- cout<<endl<<endl; FileStorage file2("mydata3.yml",FileStorage::WRITE); file2<<"one"<<1<<"two"<<2; file2.release(); //显示测试 FileStorage file2r("mydata3.yml",FileStorage::READ); cout<<(int)file2r["one"]<<"\t"<<(int)file2r["two"]; //------------------------混合方式------------------- //映射--数组方式 cout<<endl<<endl; FileStorage file3("mydata3.yml",FileStorage::WRITE); file3<<"table1"; file3<<"{"<<"one"<<"[:"<<1<<2<<3<<4<<"]"<<"two"<<"[:"<<2<<3<<4<<5<<"]"<<"}"; file3.release(); //显示测试 FileStorage file3r("mydata3.yml",FileStorage::READ); cout<<(int)file3r["table1"]["one"][0]<<"\t"<<(int)file3r["table1"]["one"][1]; //明白了吧,其实都可以使用数组了方式来访问,说白了数组也是映射嘛 //------------------------迭代器方式访问----------- //有时写入的数据边长这是可以使用迭代器来访问,其实就是指针,指针每次往后走都会判读是否为空 //输出table1中one的值 cout<<"迭代器访问"<<endl<<endl; FileNode fnode=file3r["table1"]; FileNode fnode2=fnode["one"]; FileNodeIterator it; for(it=fnode2.begin();it!=fnode2.end();it++) { cout<<(int)(*it)<<" "; }
相关文章推荐
- linux学习总结
- docker安装centos后没有ifconfig命令解决办法
- nova-compute 部署 instance 详解 - 每天5分钟玩转 OpenStack(28)
- nova-compute 部署 instance 详解 - 每天5分钟玩转 OpenStack(28)
- nova-compute 部署 instance 详解 - 每天5分钟玩转 OpenStack(28)
- wamp下codeigniter报500错误的问题
- 常用的shell命令(持续更新)
- ·转」linux的学习路线
- VirtualBox5.0.18+CentOS7.2+Hadoop2.7.2配置与开发
- 升级到win10后wamp不可用的问题
- 给入门的QT学者推荐一些源码网站
- 在linux中的info手册的用法
- Linux账号管理的相关命令
- Makefile 简单总结
- Linux内核学习总结
- linux系统备份还原
- UVa Self-Assembly(topo sort)[待AC]
- Could not load the Tomcat server configuration at \Servers\Tomcat v7.0 Server at localhost-config
- Linux账号管理
- Linux内核学习总结