c++如何将字符串强制转换为指针
C++ how would I cast a string to a pointer?
我正在使用OpenCV函数imread的C包装器。
Mat* cv_imread(String* filename, int flags) {
return new Mat(cv::imread(*filename, flags));
}
我认为它在某处失败了,所以我试着测试以确保它写对了。我只需要知道如何创建一个String*
来填充它的第一个参数…我试着用
char* filename = "~/home/test.jpg"
然后转换到String*
i/e
(String*)filename
但这不起作用…我尝试了许多其他的变化来转换到在线找到的指针,但没有发现cv_imread
会接受。在我的代码中,有必要让filename
参数是String*
而不是另一种类型。但我可以使用帮助创建String*
给cv_imread
。
编辑:per your Edit I tried
const char* filename = "/home/w/d1";
cv_imread(new string (filename), 1);
but got error:
无法将' std::string*{又称std::basic_string} '转换为' cv:: string ',参数' 1 '转换为' cv::Mat* cv_imread(cv:: string*, int) 'Cv_imread (new string (filename), 1);
如果你能帮我的话,我会很感激的
使用string::c_str()
获取字符串的底层指针:
Mat* cv_imread(String* filename, int flags) {
return new Mat(cv::imread(filename->c_str(), flags));
}
或者您也可以使用string::data()
。它们在c++ 11之后具有相同的功能。
编辑:OP似乎想传递一个
char*
到cv_read
。然后应该这样做:
cv_read(new String(filename), 1);
相关文章:
- 转换指针引用的字符串
- 无法向上转换指针到指针参数
- 混合转换指针和引用
- 堆栈对象的强制转换指针
- 基类到派生模板类的强制转换指针,而不知道类型
- 删除类型转换指针的最佳方法
- 管理到本机值类转换:强制转换指针是否安全?
- 转换指针类型
- 为什么函数不能正确强制转换指针(从基类到派生类)
- 当我们递增下面的类型转换指针时会发生什么?
- 类型强制转换指针构造函数调用
- 如何转换(指针向量)-->(指向指针数组的指针)
- 如何从类功能转换指针
- 在C++对象中:我应该使用父类强制转换指针,还是应该使用实际类本身进行强制转换
- Delphi中的类型转换指针添加
- C++分段错误(核心转储)错误 - 强制转换指针/将函数值返回到线程
- 以C++和运算符优先级键入指向数组成员的强制转换指针
- C++动态强制转换指针的内存清理
- 转换指针和引用的好处
- 在c++中转换指针