Okay, my problem is that when people enter a letter when asked for what they know (either Radius, Diameter, or Circumference; it needs to be only a number) the program enters an infinite loop. I need to have it only allow numerical entry, and deny character input for that value. How can I make it do that? For reference, the in statement for Case 1 is Radius; Case 2 is Diameter; Case 3 is Circumference.

Below is my .cpp file.

I don't know too many things about C++ because I have only been learning it for 1 month. Any help would be appreciated :)

__________________________________________________________________________

/*

Name: Circle Radius/Circumference/Diameter Calculator

Copyright: 2011

Author: Matthew Mirarchi

Date: 27/10/11 17:58

Description: Version 1.0.4 - Will solve for Radius/Circumference/Diameter of

a circle only given one.

*/

#include <iostream> // Needed for output statements

#include <stdio.h> // Needed for pause command system -> ("pause"); executes M$-DOS' pause command

#include <string.h>

#include <windows.h> // Used for string commands

#include <iomanip>

#include <limits> //Needed for command used to prevent users from entering a letter for choice

using namespace std;

int main()

{

long double Radius;

long double Diameter;

long double Circumference;

const long double pi = 3.141592653589793238462643383279502884197169399375105820974944592307816406286;

{

int choice;

bool ProgramOn = true; //Start condition for program to run

while (ProgramOn != false) // While = false, program will run

{

cout << setw(70) << "*************************************************************\n";

cout << setw(70) << "************* Enter Number of Desired Choice ****************\n";

cout << setw(70) << "*************************************************************\n";

cout << setw(70) << "* *\n";

cout << setw(70) << "* 1 - Calculate Diameter and Circumference if Radius known. *\n";

cout << setw(70) << "* 2 - Calculate Circumference and Radius if Diameter known. *\n";

cout << setw(70) << "* 3 - Calculate Diameter and Radius if Circumference known. *\n";

cout << setw(70) << "* 4 - Help/Info. *\n";

cout << setw(70) << "* 5 - Exit. *\n";

cout << setw(70) << "* *\n";

cout << setw(70) << "*************************************************************\n";

cout << endl;

cout << setw(50) << " Enter your choice and press return: ";

cin >> choice;

cin.ignore(2, '\n'); // User enters menu choice

cout << endl;

cout << "\n";

switch (choice) //switch for menu start

{

case 1:

cout << "This choice calculates the diameter and circumference of a circle if a radius is known.\n" << endl;

cout << "What is the radius?";

cout << endl;

cin >> Radius; //user input radius

cout << endl;

//calculations

Diameter = Radius * 2;

Circumference = Diameter * pi;

//output

cout << setprecision(10) << "The circumference of the circle is " << Circumference

<< " and \n the diameter of the circle is " << Diameter << endl;

cout << endl;

cout << endl;

break;

case 2:

cout << "This choice calculates the radius and circumference of a circle if the diameter is known.\n" << endl;

cout << "What is the diameter?";

cout << endl;

cin >> Diameter;

cout << endl;

//calculations

Radius = Diameter / 2;

Circumference = Diameter * pi;

//output

cout << setprecision(10) << "The circumference of the circle is " << Circumference

<< " and \n the radius of the circle is " << Radius << endl;

cout << endl;

cout << endl;

break;

case 3:

cout << "This choice calculates the diameter and radius of a circle if the circumference is known.\n" << endl;

cout << "What is the circumference?";

cout << endl;

cin >> Circumference;

cout << endl;

//calculations

Diameter = Circumference / pi;

Radius = Diameter / 2;

//output

cout << setprecision(10) << "The Radius of the circle is " << Radius

<< " and \n the diameter of the circle is " << Diameter << endl;

cout << endl;

cout << endl;

break;

case 4:

//help file/about

cout << endl;

cout << "Will solve for an unknown Radius, Diameter, and Circumference of a circle. \n";

cout << "Dev-C++ 4.9.9.2 was used to write and compile this. \n"; //Writes Text

cout << " \n"; //Creates a line break

cout << "This was written by Matthew Mirarchi. \n";

cout << " \n";

break;

case 5:

// end program

cout << "End of Program.\n";

ProgramOn = false;

break;

default:

//Prevents user from entering any number except 1,2,3,4,5

if (choice == 6||7||8||9||10)

{

goto insrtgoto;

}

else{

while (!(cin >> choice))

{

insrtgoto:

cout << "Incorrect character entered." << endl;

cin.clear();

cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');

cout << endl;

break;

}

break;

}

}

}

return 0;

}

}