我正在使用eclipse。
我宣布#define OUTPUT_FLAG "-o"
然后,我有主要的:int main(int argc, char **argv)
之后我写道:
for (int i = 1; i < argc; i+=2)
{
if(argv[i]==INPUT_FLAG)
{
cout<<"input flag\n";
input_file=argv[i+1];
}
}
在那里我得到了关于这个主题的错误。你能帮帮我吗? 谢谢
答案 0 :(得分:2)
您无法在C ++中将字符串与==
进行比较。您必须使用strcmp
或将其转换为std::string
s ,然后才能使用==
运算符。也就是说:
if (!strcmp(argv[i], INPUT_FLAG))
或
if (std::string(argv[i]) == INPUT_FLAG)
答案 1 :(得分:1)
您无法使用char *
运算符比较C字符串(==
),因为该运算符仅检查指针相等性(而不是取消引用指针并逐个比较每个字符)。使用strcmp()
,或先将argv[]
中的字符串转换为C ++ string
类型。