[英]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
為真,否則分配B
到a
。 在這種特定情況下,“A”和“B”是指向char
( char *
)的指針; 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.