字符串字面值的比较会导致未指定的行为- c++
Comparison in string literal results in inspecified behavior - C++
我正在使用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 flagn";
input_file=argv[i+1];
}
}
,在这里我得到了这个主题的错误。你能帮我一下吗?谢谢你
在c++中不能比较字符串和==
。您必须使用strcmp
或将它们转换为std::string
s ,然后使用==
操作符。即:
if (!strcmp(argv[i], INPUT_FLAG))
或
if (std::string(argv[i]) == INPUT_FLAG)
您不能使用==
操作符比较C字符串(char *
),因为该操作符仅检查指针是否相等(而不是对指针解引用并逐个比较每个字符)。使用strcmp()
,或者先将argv[]
中的字符串转换为c++ string
类型
相关文章:
- 从 XML 中读取未指定结构的每个数据成员
- 用数据填充未指定大小的数组
- 访问从联合与另一个成员集复制的联合中的一个成员是否未定义或未指定?
- 双循环变量的相等条件:未指定还是未定义
- SQL Server-未找到数据源名称,也未指定默认驱动程序
- 无法创建长度未指定
- 在Visual Studio中更新Qt翻译(.ts文件)时出现未指定错误
- 是否未指定在未评估的上下文中实例化模板/lambda
- 未定义与未指定与实现定义的行为
- 在 c++ 中获取未指定数量的输入
- 摆动,传递未指定维度的阵列
- 在尝试提交作业警告时,我一直在警告:与未指定行为的字符串字面结果比较[-WADDRESS]
- 我的基本C 程序中有一个未指定的错误
- OPENCV错误:未指定的错误(未实现该函数)
- 函数参数中数组大小未指定
- 从源代码编译 openCV:*** 未指定目标,也未找到生成文件.停
- 超载构造函数中的未指定字段
- CPack NSIS 组件未指定
- 未指定文件
- HippoMocks在未指定期望值时抛出NotImplementedException