我正在从命令行解析参数
码for(int i = 1; i < argc; i++){ cout << i << " " << argv[i] << "\n"; if(argv[i] == "-width"){ cout << " width = " << argv[i] << "\n"; } }命令
./txtbin test.jpg -width 100 out.jpg结果
1 test.jpg 2 -width 3 100 4 out.jpg
为什么if-statement里面的这一行没有打印出来?
cout << " width = " << argv[i] << "\n";
ForceBru.. 5
因为argv
是一个指向char的指针数组,你不能只是比较指向char和字符串文字的指针.要解决您的问题,您可以将两者转换为std::string
:
if(std::string(argv[i]) == "-width")
否则,您可以使用strcmp
比较文档中显示的C字符串.
因为argv
是一个指向char的指针数组,你不能只是比较指向char和字符串文字的指针.要解决您的问题,您可以将两者转换为std::string
:
if(std::string(argv[i]) == "-width")
否则,您可以使用strcmp
比较文档中显示的C字符串.