【发布时间】:2018-07-28 22:36:05
【问题描述】:
我习惯用 C 编程,但现在我需要在一个项目中使用 C++,我需要将一些文本保存到一个字符串中,我在 C 中使用的代码会是
sprintf(pathFotosLimpias, "CleanPictures/Picture_T%d_%d", pictureNumber, templateNumber);
或者类似的东西,但是 pathFotosLimpias 是一个字符串,所以它不起作用,我找不到如何将它保存为一个刺痛,我认为有一个 boost 函数可以做类似于我需要的东西,但我不知道我到底应该怎么做,有人可以解释我需要什么,或者给我一个如何使用它的例子吗?
谢谢。
更新:这显然是来自 opencv 的 cv::String,我现在有点困惑。没关系,这是一个错误。
【问题讨论】:
-
您不能真正将
sprintf与std::strings一起使用。请改用std::ostringstream。 -
响应您的编辑,我对
cv::String类型一无所知,但它可能与sprintf的使用不兼容。如果您热衷于使用该函数,那么您需要输出为 C 风格的字符串(即 char 数组),然后将其转换为您需要的类型。但 tjis 并不完全是最优的。 -
也许你可以使用
std::stringstream之类的东西。然后,您可以使用运算符<<在流中加载任意内容。然后调用方法str()获取字符串。 -
我查了一下,是的,这似乎是我想要的,但我很难理解它是如何工作的。
pathFotosLimpias << "CleanPictures/Picture_T" << pictureNumber << templateNumber应该工作吗?你有任何链接到我可以学习如何使用它的地方吗?
标签: c++ string opencv formatting printf