I am new at c++ and for an assignment I have a program that requires a switch within a while but i keep getting stuck in an infinite loop
I have tried looking up ways to solve it but since i am not skilled at c++, it is really hard for me to get my error
#include <iostream>
#include <stdio.h>
using namespace std;
int main(void)
{
   float length, width, perimeter, area;
   char ans;
   cout<<"Please enter the length of the rectangle: \n";
   cin>>length;
   cout<<"Please enter the width of the rectangle: \n";
   cin>>width;
   cout<<"What do you wish to do with these values?\n";
   cout<<"Choose an option from the menu: \n";
   cout<<"1 - Calculate Perimeter\n";
   cout<<"2 - Calculate Area\n";
   cout<<"3 - Quit\n";
   cout<<"Please enter your choice: \n";
   cin>>ans;
   while (ans != '3')
   {
      printf("give option: "); //found this online
      ans = getchar();         //this too
      switch (ans)
      {
         case '1' :
            perimeter=2*(length+width);
            cout<<"The perimeter of the rectangle with length "<<length<<" and width "<<width<<" is "<<perimeter<<endl;
            break;
         case '2' :
            area=length*width;
            cout<<"The area of the rectangle with length "<<length<<" and width "<<width<<" is "<<area<<endl;
            break;
         default :
            cout<<"Invalid Entry, please only select options from menu"<<endl;
      }
   }
   printf("Program finished...\n"); //this was online too
   return 0;
}
when i enter the option 2 or 1, there is an infinite loop and i cant seem to fix that. I am not use to formatting on this site, please excuse the way i formatted my code
 
     
    