In C++, create a program which will read a phrase from the user and create a framed version of it for printing. For example, the phrase "hello world"would result in:
*********
* hello *
* world *
*********
Whereas the phrase "the sky is falling"might be:
***********
* the *
* sky *
* is *
* falling *
***********
Or:
***********
* the *
* sky *
* is *
* falling *
***********
Or even:
***********
* the *
* sky *
* is *
* falling *
***********
Depending on whether or not the user asked for left, centered, or right justification — respectively — of the phrase's words within the frame. Note how the frame exactly fits the phrase based on the longest word within. Neat, eh?
The phrase "O | -+- | /-\"when centered would become:
*******
* O *
* | *
* -+- *
* | *
* /-\ *
*******
(Okay, so it's a sad excuse for a stick figure, but hey! I've never claimed to be a great good decent artist, now have I? *phbbt*)
Also allow the user to specify what character you are to make the frame from. Typical choices would be @, #, *, +, x, X, o, or O (use a menu for the user to tell you which character they'd like to use). But let them tell you anything
that will print just fine. (Hint: cctype has a function called isprint that tells if a character is printable.)
Give them the option of reading phrases from the keyboard or a file they specify (assume each line of the input stream contains a single phrase).
The user should also be able to choose if the framed phrase is printed on the screen or into a file they specify.
Make sure the program can perform all of the above please!