首页 / C++ / 内核格式化(C++)
内核格式化(C++)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了内核格式化(C++),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2843字,纯文字阅读大概需要5分钟。
内容图文
![内核格式化(C++)](/upload/InfoBanner/zyjiaocheng/1045/b1d74d736477499f8cc01329a50104ca.jpg)
参考《C++ Primer Plus》P788
iostream族支持 程序 与 终端 之间的I/O
fstream族支持 程序 与 文件 之间的I/O
sstream族支持 程序 与 string对象 之间的I/O,也就是说,可以使用cout的ostream方法将格式化信息写入string对象中,并使用istream方法(如getline())来读取string对象中的信息。读取string对象中的格式化信息或将格式化信息写入string对象中被称为内核格式化(incore formatting)。
ostringstream
#include <iostream> #include <sstream> #include <string> int main() { usingnamespace std; ostringstream outstr; string hdisk; cout << "What‘s the name of your hard disk? "; getline(cin, hdisk); // cin -> hdisk int cap; cout << "What‘s its capacity in GB? "; cin >> cap; // write formatted information to string stream //(格式化信息 -> string对象) outstr << "The hard disk " << hdisk << " has a capacity of " << cap << " gigabytes.\n"; string result = outstr.str(); cout << result; return0; }
ostringstream类有一个名为str()的成员函数,该函数返回一个被初始化为缓冲区内容的字符串对象。
string result = outstr.str()
使用str()方法可以“冻结”该对象,这样便不能将信息写入该对象中。
![技术分享图片](/upload/getfiles/default/2022/11/6/20221106032456741.jpg)
istringstream
#include <iostream> #include <sstream> #include <string> int main() { usingnamespace std; string lit = "It was a dark and stormy day, and "" the full moon glowed brilliantly. "; istringstream instr(lit); //use buf for input lit -> instrstring word; while (instr >> word) //read a word a time cout << word << endl; return0; }
istringstream类允许使用istream方法族读取istringstream对象中的数据,istringstream对象可以使用string对象进行初始化。
应用
CMakeLists.txt
cmake_minimum_required( VERSION 2.8 ) project( stream ) # 添加c++ 11标准支持 set( CMAKE_BUILD_TYPE Release ) set( CMAKE_CXX_FLAGS "-std=c++11" ) # 寻找OpenCV库 find_package( OpenCV REQUIRED ) # 添加头文件 include_directories( ${OpenCV_INCLUDE_DIRS} ) add_executable( sstream stringstream.cpp ) # 链接OpenCV库 target_link_libraries( sstream ${OpenCV_LIBS} )
stringstream.cpp
#include <iostream> #include <fstream> #include <sstream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> usingnamespace std; usingnamespace cv; void readFrame(int index); int main() { for (int i = 0; i < 3; i++) { readFrame(i); } return0; } void readFrame(int index) { string dir = "./data/"; string rgb = "rgb"; string dep = "depth"; string Ext = ".png"; stringstream ss; ss << dir << rgb << index << Ext; // ./data/rgb1.pngstring filename; ss >> filename; Mat color = imread( filename );//rgb imshow(filename,color); //waitKey(0); ss.clear(); ss << dir << dep << index << Ext; // ./data/depth1.png filename.clear(); ss >> filename; Mat depth = imread( filename , -1);//depth imshow(filename,depth); waitKey(0); destroyAllWindows(); }
重点是:
ss << dir << rgb << index << Ext;
ss >> filename;
可以将字符串类型(rgb)和整数类型(index)拼起来,index不断更新,可以读取不同下标的文件。
原文:https://www.cnblogs.com/112358nizhipeng/p/9256385.html
内容总结
以上是互联网集市为您收集整理的内核格式化(C++)全部内容,希望文章能够帮你解决内核格式化(C++)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。