C++ 我无法使枚举正常工作

C++ 我无法使枚举正常工作,c++,c,C++,C,始终显示错误。因为我的程序太小太差了 您使用enum是错误的!您不能写入e。是的,您必须通过以下方式将值“是”分配给变量“e”:e=是,然后您可以显示它。 enum ENU{YES=0,NO,DONTKNOW}; void func(ENU e) { int n; cout<<"1+1="; cin >> n; if(n==2) cout<<e.YES; else cout<<e.NO;

始终显示错误。因为我的程序太小太差了

您使用enum是错误的!您不能写入e。是的,您必须通过以下方式将值“是”分配给变量“e”:e=是,然后您可以显示它。
enum ENU{YES=0,NO,DONTKNOW};

void func(ENU e)
{
   int n;
   cout<<"1+1=";
   cin >> n;
   if(n==2)
     cout<<e.YES;
   else 
     cout<<e.NO;
   if(ischar(n))   
     cout<<e.DONTKNOW;
}

并且显示会出错,cout会将其显示为int值,这样YES将显示为0,NO将显示为1。

您可能需要这样的内容:

cout<<YES;
cout<<NO;
在您的示例中,将参数ENU传递给func没有意义。 此外,您必须首先测试ischar,以避免在没有必要的情况下进入其他两个测试中的任何一个。
请注意,输出枚举值时可能始终显示什么错误?什么错误?什么是ischar?谢谢,我只是想知道谁关心我的帖子。我不会再发了。谢谢你。那么我能理解你只是没有问题,只是想看看谁会回应吗?如果没有,你的错误是什么?你的实际问题是什么?投票结束:在你先前的封闭重复问题中,我读了谢谢。在我的实际代码中没有错误,我可以使用enum,并且enum示例在所有地方都可以。ischarn的结果未定义,因为n未显式初始化,并且输入流可能不包含整数。也就是说,您应该显式地将n初始化为已知值。@ildjarn:可能未定义。
cout<<YES;
cout<<NO;
    enum ENU {YES=0,NO,DONTKNOW};
    void func()
    {
       int n;
       cout<<"1+1=";
       cin >> n;

       if(ischar(n))   
         cout<< DONTKNOW;
       else if(n==2)
         cout<< YES;
       else 
         cout<< NO;
    }
void func()
{
   int n;
   cout<<"1+1=";
   cin >> n;
   ENU e = YES;

   if(ischar(n))   
     e = DONTKNOW;
   else if(n==2)
     e = YES;
   else 
     e = NO;

    cout << e << endl;
}