C++ 有没有办法包含多个!=接线员?

C++ 有没有办法包含多个!=接线员?,c++,C++,我试图使一个系统在变量不等于整数或十进制数时输出无效。问题是,当变量不等于第一个选项而不是两个选项时,它的输出无效。有解决办法吗 我已经尝试将其作为if语句和else-if语句,而不是用&&分隔它们。它不起作用 if (user_input != "whole number") { std::cout << "\nInvalid"; goto label1; } else if (user_input != "decimal number") { st

我试图使一个系统在变量不等于整数或十进制数时输出无效。问题是,当变量不等于第一个选项而不是两个选项时,它的输出无效。有解决办法吗

我已经尝试将其作为if语句和else-if语句,而不是用&&分隔它们。它不起作用

if (user_input != "whole number") {
    std::cout << "\nInvalid";
    goto label1;
  }
  else if (user_input != "decimal number") {
    std::cout << "\nInvalid";
    goto label1;
  }
if(用户输入!=“整数”){

std::cout您的要求是,如果变量不等于“整数”或“十进制数”,则系统应输出无效

我们可以直接将其转换为代码。为了强调我是如何翻译需求的,我使用了
,但是如果您以更传统的方式编写东西,则代码将是相同的,使用
以及
|

if(user_input != "whole number" and user_input != "decimal number") 
{
    std::cout << "\nInvalid";
    goto label1;
}
if(用户输入!=“整数”和用户输入!=“小数”)
{

std::cout一种可读的方法,使用真实代码:

bool invalid = ((typeid(var) != typeid(int)) && (typeid(var) != typeid(double)));
if(invalid)
    std::cout << "Invalid !" << std::endl;
bool invalid=((typeid(var)!=typeid(int))和&(typeid(var)!=typeid(double));
如果(无效)

std::您是否需要一个复合条件语句?将两个条件用| |连接在一个if语句中,表示或。通常,使用goto语句是一种不好的做法,因为它会使代码很难遵循您有多个goto的逻辑。请尝试在没有它们的情况下编写代码。我对您的答案投了赞成票,因为它是正确的,但我想你可能想提一下,通常写
的方法是
|
,而写
的方法是
&&
。使用没有错-只是“不常见”。太棒了!我很高兴能帮上忙!
bool invalid = ((typeid(var) != typeid(int)) && (typeid(var) != typeid(double)));
if(invalid)
    std::cout << "Invalid !" << std::endl;