簡體   English   中英

C ++如何將字符串轉換為指針?

[英]C++ how would I cast a string to a pointer?

我正在使用此C包裝程序來讀取OpenCV函數。

 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

編輯:根據您嘗試的編輯

 const char* filename = "/home/w/d1";


 cv_imread(new string (filename), 1);

但出現錯誤:

無法將參數'1'的'std :: string * {aka std :: basic_string }'轉換為'cv :: String '到'cv :: Mat * cv_imread(cv :: String *,int)'cv_imread(新字符串(文件名),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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM