![](/img/trans.png)
[英]Significance of argc and argv in int main( int argc, char** argv ) in OpenCV
[英]VideoCapture with “ int main(int argc, char **argv) ”
我正在嘗試使用VideoCapture。 我的代碼的一部分在下面。
當我運行我的代碼時,我得到了:
錯誤! 提供的參數不足。
如何將我的視頻與此代碼一起使用。 我想用VLC打開流。 或者,如果還有其他方法,我想使用。
我搜索了argv [1]將是我的視頻文件。 但是我不知道如何顯示我的文件以及如何為此代碼定義我的文件。
為了幫助將來的用戶,我將進行一些更改:
是:
LOG_DEBUG("Error! Insufficient parameters provided.");
是:
std::string program(argv[0]);
LOG_DEBUG("Error! Insufficient parameters provided.");
LOG_DEBUG("Please provide a command line argument.");
LOG_DEBUG("Example: " << program << " VIDEO_FILE_NAME");
說明:
在命令行上,當調用程序時,命令行中的參數將復制到argv
保存的字符串數組中。 argv[0]
是第一個參數,它是程序本身的文件名。 換句話說,從命令行在字符串argv
的數組中填充0 <= i < argc
argv[i]
。 如果重命名了程序可執行文件,則下次運行程序時argv[0]
會有所不同。
數組argv
從0
索引到argc-1
。 當main
調用該陣列字符串和的argc的被設置。 這取決於軟件來決定要做什么。 在這種情況下,您的應用程序將測試argc
並發現,如果未提供任何參數(即argc <2),則該用戶提供的一個用戶參數不存在,請報告錯誤並返回。
順便說一句,您可以使用另一種形式的main
:
int main(int argc, char** argv, char** envp)
argc
=參數數量。 argv
=參數字符串數組envp
=環境變量名稱=值對的數組
因此,除了傳遞簡單的命令行參數外,人們還可以選擇編寫main
函數來獲取環境變量(而不是外殼變量),並據此決定細微的動作。 選項比比皆是。
但是暫時,如果您的代碼報告了為什么存在錯誤,並且所提供的建議似乎可以解決此問題,那么它會有所幫助。
祝好運。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.