argc atoi argv,Opencv,C++ [关闭]

Posted

技术标签:

【中文标题】argc atoi argv,Opencv,C++ [关闭]【英文标题】:argc atoi argv, Opencv, C++ [closed] 【发布时间】:2012-11-23 09:34:13 【问题描述】:

你能解释一下这是什么意思吗?

 argc >= 3 ? atoi(argv[2]) : 40;

第二个问题:是否存在函数库 - 必要的参数,结构类似这样

 CVAPI(void)  cvAddS( const CvArr* src, CvScalar value, CvArr* dst,
                 const CvArr* mask CV_DEFAULT(NULL));

【问题讨论】:

我完全不明白你问题的第二部分。 学习 C++ 基础:三元运算符,然后看看 atoi 做了什么。在 C++ 中,应避免使用std::atoi,而应使用std::stoi(已添加到 C++11)。 【参考方案1】:

第一个 sn-p 使用ternary operator 检查是否至少有两个参数(第一个是程序名称,因此条件中的3)如果是,则表达式返回值将第二个参数作为整数(atoi 将字符串转换为整数),否则表达式返回值 40

【讨论】:

【参考方案2】:
argc >= 3 ? atoi(argv[2]) : 40;

表示“如果 argc 大于或等于 3,则返回 argv[2] 转换为整数,否则返回 40。前面的语句中的“return”有点误导。实际上,表达式解析为一件事或另一件事,视情况而定。

condition ? true_expr : false_expr

按照惯例,argc 具有传递给 main 的参数数量,argv 是包含这些参数的数组。 argv[0] 是可执行文件本身的名称,因此argv[1] 将是可执行文件名称之后的第一个命令行参数。

【讨论】:

以上是关于argc atoi argv,Opencv,C++ [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 C 中的 argv[1] 上使用 atoi() 时算术溢出

char *argv[ ] 和 int argc C++ 的全球范围

C++ main函数中参数argc和argv含义及用法

C++ int main (int argc, char *argv[]) - argv 是 c 风格的数组吗?

一眼看明白什么是命令行参数

c++ parse argv