Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/133.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ if字符串相等-if语句_C++ - Fatal编程技术网

C++ 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

我正在从命令行解析参数

代码 结果 为什么if语句中的这一行没有打印

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")