簡體   English   中英

處理命令行參數

[英]Processing command line argument

我一直在使用OpenCV,我見過的一些示例代碼使用以下內容來讀取文件名。 我知道argc是傳遞的命令行參數的數量,而argv是參數字符串的向量,但有人可以澄清下一行的每個部分的作用嗎? 我試過搜索這個,但沒有找到很多結果。 謝謝。

const char* imagename = argc > 1 ? argv[1] : "lena.jpg";

謝謝。

const char* imagename =  // assign the string to the variable 'image_name'
       argc > 1          // if there is more than one cmd line argument (the first is always the program name)
       ? argv[1]         // use the first argument after the program name
       : "lena.jpg";     // otherwise use the default name of "lena.jpg"

如果argc大於1,則為imagename指定argv[1]保存的指針(即命令行中給出的第一個參數); 否則(argc不大於1),指定默認值“lena.jpg”。

它使用三元運算符?: 這是用這種方式: CONDITION ? A : B CONDITION ? A : B ,可以讀作

if (CONDITION)
  A
else
  B

a = C ? A : B a = C ? A : B A分配給a如果C為真,否則分配Ba 在這種特定情況下,“A”和“B”是指向charchar * )的指針; const屬性表示我們有“常量”的“字符串”。

if (argc > 1) {
  const char* imagename = argv[1];
} else {
  const char* imagename = "lena.jpg";
}

(如果我們同意imagename可以超出括號的范圍)

該示例顯示了三元運算符的使用。

const char * imagename = argc> 1:argv [1]:“lana.jpg”通過三元,你可以說這個表達式有三個成員。

第一個成員是條件表達式

如果條件表達式為true,則第二個成員是可以分配給imagename的值。

如果條件表達式為false,則第三個成員是可以分配給imagename的值。

這個例子可以翻譯成:

const char* imagename;
if(argc > 1)
    imagename = argv[1];
else
    imagename = "lana.jpg";

暫無
暫無

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

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