State Machine with Enums

#include<iostream>
#include<string>
using namespace std;

enum class State
{
    Idle, 
    Busy, 
    Error
};

const char* toString(State s)
{
    switch(s)
    {
        case State::Idle:
            return "Idle";
        case State::Busy:
            return "Busy";
        case State::Error:
            return "Error";
    }
    return "";
}

int main()
{
    int n;
    cin>>n;
    State state = State::Idle;
    
    for (int i=0; i<n;i++)
    {
        string cmd;
        cin>>cmd;
        
        if( cmd =="start")
        {
            state=State::Busy;
        }
        if (cmd =="done")
        {   
            state = State::Idle;
        }
        if (cmd =="fail")
        {   
            state = State::Error;
        }
        
    }
    
    cout<<toString(state);
    return 0;
}
Upvote
Downvote
Loading...

Input

3 start done start

Expected Output

Busy