| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 详解C++标准库<sstream>中的类stringstream并利用它实现OpenCV下的图片批量读取 -> 正文阅读 |
|
[人工智能]详解C++标准库<sstream>中的类stringstream并利用它实现OpenCV下的图片批量读取 |
本文详解C++标准库中的类stringstream,并利用它实现OpenCV下的批量图片读取。 一、字符串格式化函数sprintf()存在的问题在进行图像处理时,我们常常需要批量读取图片,本文就说下如何利用C++标准库中的类stringstream实现OpenCV下的批量图片读取。 当然本文要批量读取的图片在名字上是有数值规律的。 比如下面这些图片: 这其中的关键便是如何把数值批量转化成字符串? ?当然,您可以选择C标准库<stdio.h>中的字符串格式化函数sprintf()来解决这个问题。在我的博文https://blog.csdn.net/wenhao_ir/article/details/51538445 的代码中也用到了函数sprintf()。 但是函数sprintf()存在一些问题:
上面的代码是没有问题的,但是下面的代码就有问题了:
为什么有问题,因为字符串"My current coordinate value is (%d,%d)"是33个字节,超过了字符数组temp的长度16,所以程序运行时就会报错了。 ②使用sprintf()函数时必须使用正确的格式化符。如果使用了不正确的格式化符,会导致非预知的后果,比如下面这个例子。
上面这个代码目前是没有问题的,但是对上面代码的一个微小的改变就会使程序崩溃。
在上面的代码中,错误地使用了%f格式化符来替代了%d。 二、详细介绍C++标准库中的类stringstreamC++标准库中的就解决了上面这些问题。C++标准库中的提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性、类型安全和可扩展性。 我们常用的是类stringstream,毕竟每个转换都要涉及到输入和输出操作,所以我的这篇博文重点介绍类stringstream的使用。 类stringstream的使用其实很简单,一个简单的示例代码如下:
上面的代码运行结果如下: 以类stringstream为例,之所以能解决上面函数sprintf()遇到的两个问题: 正是因为类stringstream能自动识别推导格式,所以使得它不仅能实现数值类型转化为字符串,也能实现其它类型间的相互转换。
代码运行结果如下:
运行结果如下:
上面代码的运行结果如下:
上面的代码的运行结果如下: 三、利用C++标准库中的类stringstream实现OpenCV下的图片批量读取如果您认真阅读了本文上面的内容,那么就很容易实现“利用C++标准库中的类stringstream实现OpenCV下的图片批量读取”的程序了。 代码如下:
上面的代码很简明,没什么好多说的。 本文就先写到这里,博主水平有限,欢迎在本文下回复指正。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 8:55:03- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |