PDA

View Full Version : سوال: داده های شمارشی در ++C



ha88an
چهارشنبه 24 مهر 1392, 12:53 عصر
سلام دوستان
من داده های شمارشی خودم رو به صورت زیر تعریف کردم
enum game{a,b,c};
game x,y;
آیا راهی هست که بشه به صورت مستقیم (بدون استفاده از متغیر کمکی) و با استفاده cin به x و y مقدار داد؟؟؟

omidshaman
چهارشنبه 24 مهر 1392, 20:30 عصر
با استفاده از overload کردن operator های input , output میشه
کد نمونه
main.cpp


#include <iostream>
#include <String>
#include "MyGame.h"

using namespace std;
using namespace MyGames;

int main()
{
Game a,b;
cin>>a>>b;
cout<<a<<endl<<b;
}


MyGame.h

#ifndef MYGAME_H_INCLUDED
#define MYGAME_H_INCLUDED

namespace MyGames
{
enum Game{ Game1, Game2};
std::istream &operator >> (std::istream &is, Game &g)
{
std::string str;
is>>str;
if(str=="game1")
{
g=Game1;
}
else if(str=="game2")
{
g=Game2;
}
else
{
std::cout<<"ERROR WRONG GAME";
}
return is;
}
std::ostream &operator <<(std::ostream &os,Game &g)
{
if(g==Game1)
{
std::cout<<"YOUR GAME IS GAME 1";

}
else if(g==Game2)
{
std::cout<<"YOUR GAME IS GAME 2";
}
return os;
}

}


#endif // MYGAME_H_INCLUDED