#include <iostream>
#include <cassert>
using namespace std;
//constants:
const int MIN_HEIGHT = 3;
const int MIN_WIDTH = 3;
const int MAX_HEIGHT = 20;
const int MAX_WIDTH = 60;
const char H = 'h';
const char W = 'w';
const char B = 'b';
const char F = 'f';
const char Q = 'q';
//prototypes:
void drawRectangle(int row, int col, char border, char fill);
void displayChoices();
char getChoice(char h, char w, char b, char f, char q);
int main()
{
    char border, fill, choice; 
    cout << endl << "Welcome! \n"; 
    drawRectangle (10,10, '#','*');
    cout << endl << "Choose from the following: \n";
    displayChoices();
    getChoice(H, W, B, F, Q);
    //drawRectangle();//not sure how to get the changed value from getChoice
    //if height is changed, update height. If width is changed, update width of rect.
    //if border is changed, update rectangle border. If fill is changed, update rectangle fill
}
//draws rectangle
void drawRectangle(int row, int col, char border, char fill)
{
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++) {
            if ((i == 0) || (i == (row - 1)) || (j == 0) || (j == (col - 1))) {
                cout << border;
            }
            else {
                cout << fill;
            }
        }
        cout << endl;
    }
}
//diplays users choices between height, width
//border and quit
void displayChoices()
{
    cout << "h) Change the height.\n";
    cout << "w) Change the width.\n";
    cout << "b) Change the border character.\n";
    cout << "f) Change the fill character.\n";
    cout << "q) Quit program.\n";   
}
//takes users choice and asks for the new value or character 
char getChoice(char h, char w, char b, char f, char q) {
    char choice, newBorder, newFill;
    int newHeight, newWidth, count = 0;
    cin >> choice;
    while ((choice != h && choice != w && choice != b && choice != f && choice != q)) {
        cout << "Not a valid choice. Choose again.\n";
        cin >> choice;
    }
        if (choice == q)
            return 0;
        else if (choice == h) {
            cout << "Enter new height between " << MIN_HEIGHT << " and " << MAX_HEIGHT << ": \n";
            cin >> newHeight;
            while ((newHeight < MIN_HEIGHT) || (newHeight > MAX_HEIGHT)) {
                cout << "That number is not in range. Try again.\n";
                cout << "Enter a number between " << MIN_HEIGHT
                    << " and " << MAX_HEIGHT << ": ";
                cin >> newHeight;
            } return newHeight;
        }
        else if (choice == w) {
            cout << "Enter new width  between " << MIN_WIDTH << " and " << MAX_WIDTH << ": \n";
            cin >> newWidth;
            while ((newWidth < MIN_WIDTH) || (newWidth > MAX_WIDTH)) {
                cout << "That number is not in range. Try again.\n";
                cout << "Enter a number between " << MIN_WIDTH
                    << " and " << MAX_WIDTH << ": ";
                cin >> newWidth;
            } return newWidth;
        }
        else if (choice == b) {
            cout << "Enter new border character: \n";
            cin >> newBorder;
            return newBorder;
        }
        else if (choice == f) {
            cout << "Enter new fill character: \n";
            cin >> newFill;
            return newFill;
        }
    }
I am trying to create an application to draw a rectangle where the height, width, border, and fill of the rectangle can be changed by the user (one at a time). I am having trouble understanding how to access/save the user's input (change to the rectangle) and drawing the new rectangle with the updated value. I am just now learning C++ so my code may not even be the right way to approach this problem. Any help or guidance is appreciated.
 
     
    