I have the following code that converts a couple of bash commands into Windows cmd commands, as well as adding some commands. This is only my second day programming in C++, so any and all suggestions would be helpful.#include stdafx.h#include <iostream>#include <string>#include <regex>#include <fstream>#include <stdlib.h>#include <time.h>#include <conio.h>using namespace std;using namespace std::tr1;class Parser{    regex ls_regex, mkdir_regex, sleep_regex, rand_regex, rm_regex, touch_regex, cat_regex, open_regex, cp_regex, lat_regex;    string touch_match, sleep_match, mkdir_match, ls_match, rm_match, open_match, cp_match;   public:    void SetRegexes();    void RunCommand(string);    string ParseCommand(string);    string SearchString(int, string);};void Parser::SetRegexes(){    // Regex is the bash command, match is the cmd command    ls_regex = ^ls$;    ls_match = dir;    mkdir_regex = ^mkdir;    mkdir_match = md;    sleep_regex = ^sleep$;    sleep_match = pause;    rand_regex = ^timerand$;    rm_regex = ^rm;    rm_match = del;    touch_regex = ^touch;    cat_regex = ^cat;    open_regex = ^open;    open_match = notepad;    cp_regex = ^cp;    cp_match = copy;    lat_regex = ^lat;}string Parser::ParseCommand(string unparsed){    // Checks if the regex can be found in the unparsed string    if (regex_search(unparsed, ls_regex))    {        // Unparsed now is actually parsed        unparsed = unparsed.replace(0, 3, ls_match);    }    else if (regex_search(unparsed, mkdir_regex))    {        unparsed = unparsed.replace(0, 5, mkdir_match);    }    else if (regex_search(unparsed, sleep_regex))    {        unparsed = unparsed.replace(0, 4, sleep_match);    }    else if (regex_search(unparsed, rand_regex))    {        srand(time(NULL));        cout << rand() << endl;        return  ;    }    else if (regex_search(unparsed, rm_regex))    {        unparsed = unparsed.replace(0, 2, rm_match);    }    else if (regex_search(unparsed, touch_regex))    {        string tfile;        for (int i = 0; i < unparsed.length(); i++)        {            if (i > 5)            {                tfile += unparsed[i];            }        }        ofstream create_file(tfile);        return  ;    }    else if (regex_search(unparsed, cat_regex))    {        string op_line;        string catfile;        for (int i = 0; i < unparsed.length(); i++)        {            if (i > 3)            {                catfile += unparsed[i];            }        }        ifstream input_file(catfile);        while (input_file.good())        {            getline(input_file, op_line);            cout << op_line;        }        cout << endl;        return  ;    }    else if (regex_search(unparsed, open_regex))    {        unparsed = unparsed.replace(0, 5, open_match +  );    }    else if (regex_search(unparsed, cp_regex))    {        unparsed = unparsed.replace(0, 4, cp_match +  );    }    else if (regex_search(unparsed, lat_regex))    {        string latfile;        string op_line;        char holder;        for (int i = 0; i < unparsed.length(); i++)        {            if (i > 3)            {                latfile += unparsed[i];            }        }        cout << latfile << endl << endl;        ifstream input_file(latfile);        while (input_file.good())        {            getline(input_file, op_line);            cout << op_line << endl;            // getch() makes it so the letters are not echoed to the keyoard            holder = getch();        }        return  ;    }    return unparsed;}void Parser::RunCommand(string parsed){    // Converts to a different type so it can be used in the system method    const char *cparsed = parsed.c_str();    system(cparsed);}void _tmain(int argc, _TCHAR* argv[]){    string name;    int line_counter = 0;    Parser main_parser;    main_parser.SetRegexes();    string command;    // Provides a never-ending command line interface    while (true)    {        line_counter++;        cout << < << line_counter << name << -> ;         //cin >> command;        getline(cin, command);        command = main_parser.ParseCommand(command);        main_parser.RunCommand(command);    }}
Converting Bash commands into Windows cmd commands
c++;parsing;beginner;shell;windows