如何将"int"值放入"const char*"中

How to put an 'int' value into a 'const char*'

本文关键字:char const int      更新时间:2023-10-16

可能的重复项:
C++ 将整数和字符串转换为字符*

我使用的函数如下所示:

int cvSaveImage(const char* filename,const CvArr* image);

此函数需要const char*作为第一个参数。例如:

cvSaveImage("ImageName",img)

会是对的。

但是,我想在"图像名称"中放置一个int变量值,而不是"名称"。我尝试过这样的事情,但根本不起作用,它崩溃了:

int num = 10;
char buffer[1024];
sprintf(buffer,"Image%d",num);
cvSaveImage((const char *)buffer,img);

有什么想法吗?

必须为文件指定扩展名。这是openCV找出写入格式的唯一方法。OpenCV抛出一个异常,这很可能是你的程序崩溃的原因。

另外,如果您正在处理一个新项目,请考虑迁移到 openCV 的C++界面。它更有条理,具有更多功能,也推荐使用。

如果您使用的是字符串,则此函数应该可以解决问题:

#include <sstream>
#include <string>
std::string IntToString(int N)
{
    ostringstream ss("");
    ss << N;
    return ss.str();
}