C++ if字符串相等-if语句
我正在从命令行解析参数 代码 结果 为什么if语句中的这一行没有打印C++ if字符串相等-if语句,c++,C++,我正在从命令行解析参数 代码 结果 为什么if语句中的这一行没有打印 cout << " width = " << argv[i] << "\n"; cout因为argv是指向char的指针数组,您不能只比较指向char的指针和字符串文本。要解决您的问题,您可以将两者转换为std::string,如下所示: if(std::string(argv[i]) == "-width") 否则,您可以使用strcmp来比较C字符串,如图所示 第二个std::str
cout << " width = " << argv[i] << "\n";
cout因为argv
是指向char的指针数组,您不能只比较指向char的指针和字符串文本。要解决您的问题,您可以将两者转换为std::string
,如下所示:
if(std::string(argv[i]) == "-width")
否则,您可以使用strcmp
来比较C字符串,如图所示 第二个std::string
是多余的,转换成字符串似乎有点重,因为存在strcmp
来处理c风格strings@NathanOliver,当我看到你的评论时,我正在把这个添加到我的答案中(我正忙着搜索链接,所以一开始没有包括它)。
1 test.jpg
2 -width
3 100
4 out.jpg
cout << " width = " << argv[i] << "\n";
if(std::string(argv[i]) == "-width")